aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-11-05 10:56:44 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2013-11-05 10:56:44 +0000
commit08a948d8600bc37274a8593d05fd04609e69aecc (patch)
treea57eb8ba5b7c10792466010990404026c901bec9
parente9412daa99d5d692fde87c4e69baa2f9754393da (diff)
downloadalpine_aports-08a948d8600bc37274a8593d05fd04609e69aecc.tar.bz2
alpine_aports-08a948d8600bc37274a8593d05fd04609e69aecc.tar.xz
alpine_aports-08a948d8600bc37274a8593d05fd04609e69aecc.zip
main/linux-vserver: upgrade to 3.10.18
-rw-r--r--main/linux-vserver/APKBUILD42
-rw-r--r--main/linux-vserver/aslr-pie.patch48
-rw-r--r--main/linux-vserver/kernelconfig.x86841
-rw-r--r--main/linux-vserver/kernelconfig.x86_64843
-rw-r--r--main/linux-vserver/patch-3.10.18-vs2.3.6.6.diff (renamed from main/linux-vserver/patch-3.4.65-vs2.3.3.9.diff)9978
5 files changed, 6066 insertions, 5686 deletions
diff --git a/main/linux-vserver/APKBUILD b/main/linux-vserver/APKBUILD
index d907d82904..8fc2eaa3fe 100644
--- a/main/linux-vserver/APKBUILD
+++ b/main/linux-vserver/APKBUILD
@@ -2,9 +2,9 @@
2 2
3_flavor=vserver 3_flavor=vserver
4pkgname=linux-${_flavor} 4pkgname=linux-${_flavor}
5pkgver=3.4.65 5pkgver=3.10.18
6pkgrel=0 6pkgrel=0
7_vsver=vs2.3.3.9 7_vsver=vs2.3.6.6
8 8
9if [ "${pkgver##*.*.*}" = "$pkgver" ]; then 9if [ "${pkgver##*.*.*}" = "$pkgver" ]; then
10 _kernver=$pkgver 10 _kernver=$pkgver
@@ -15,7 +15,7 @@ fi
15pkgdesc="Linux kernel with vserver" 15pkgdesc="Linux kernel with vserver"
16url="http://linux-vserver.org/" 16url="http://linux-vserver.org/"
17depends="mkinitfs linux-firmware" 17depends="mkinitfs linux-firmware"
18makedepends="perl installkernel" 18makedepends="perl installkernel bash bc"
19options="!strip" 19options="!strip"
20_config=${config:-kernelconfig.${CARCH}} 20_config=${config:-kernelconfig.${CARCH}}
21install= 21install=
@@ -136,21 +136,21 @@ dev() {
136 "$subpkgdir"/lib/modules/${_abi_release}/build 136 "$subpkgdir"/lib/modules/${_abi_release}/build
137} 137}
138 138
139md5sums="967f72983655e2479f951195953e8480 linux-3.4.tar.xz 139md5sums="4f25cd5bec5f8d5a7d935b3f2ccb8481 linux-3.10.tar.xz
1405cc0b3e19712173f8f2612c17af16a64 patch-3.4.65.xz 140e39b75595bf61d758087e1ddecd01a12 patch-3.10.18.xz
1411eed35999e8ba9d4549e9c4adb87e034 patch-3.4.65-vs2.3.3.9.diff 141d9f07e9608af91b865f9d646ae0b96b2 patch-3.10.18-vs2.3.6.6.diff
1425901bfca41ac6a557e12b48115d3d1b2 aslr-pie.patch 14235e2e5c7a5f0de3cdf540bb4ae894349 aslr-pie.patch
1431fce2ef2e47d19c150ab0b2df3373a57 kernelconfig.x86 14370d2cc88b867c9da26a0ab9a6da9973f kernelconfig.x86
144b6a18f4cb2523bbd2500809e61172f8f kernelconfig.x86_64" 144acccc23350bafce3fdb43c7c80296c6a kernelconfig.x86_64"
145sha256sums="ff3dee6a855873d12487a6f4070ec2f7996d073019171361c955639664baa0c6 linux-3.4.tar.xz 145sha256sums="df27fa92d27a9c410bfe6c4a89f141638500d7eadcca5cce578954efc2ad3544 linux-3.10.tar.xz
1460cab0843ed38ae6f1839bdaa425033d9d1f3754923cc925ed6e13715c2158216 patch-3.4.65.xz 1466fe9123444e4803d2bdec0f89a969024813bd54ba9114471589d1326deee8d6f patch-3.10.18.xz
14737cf0ab273273cb5708304dc2f55302cc9c7429801927ed14d7b523f5e8ba899 patch-3.4.65-vs2.3.3.9.diff 1475acf8e93686cafd12cab26dd1d80a61cc8ed54199976ea4eaccd187238da9ab0 patch-3.10.18-vs2.3.6.6.diff
14837ad5b5f44fcc119f71c81e8cda376c13ecc04f785bd2e1892782def6f5cfae3 aslr-pie.patch 148c18b47c7cd07837ca1c4f4702ef72e688a307b02f1f74012b329cea7d910ec85 aslr-pie.patch
149e97b45a117671c5a87a9ba4a1f946125053eac078d297f61f9c8d4594acbf830 kernelconfig.x86 149874b7591214e69cf145f9bce1427b6774435a43c3dac50ea5c8ccd4c43790944 kernelconfig.x86
150d44d1a1be3402847f540cc0cfb201deec7084b4c516e592b92e115ab3f71d4b5 kernelconfig.x86_64" 1508deb8491dc854ed392f730e8ee53a32c47bba0b4350f0f81afdf741207084855 kernelconfig.x86_64"
151sha512sums="1c49b336750c9c2b49d21e54126f22a800367296be0d57e6df28b1532cbeba7fc3bdf4cfe27d9810576e76c2db2e9c2493f0804451c915137cb78d7aa61f236c linux-3.4.tar.xz 151sha512sums="5fb109fcbd59bf3dffc911b853894f0a84afa75151368f783a1252c5ff60c7a1504de216c0012be446df983e2dea400ad8eeed3ce04f24dc61d0ef76c174dc35 linux-3.10.tar.xz
15256c25d652a26878c755fcefe37aa308c5919a4c2c812590b9ef7bb5d2b6628f532507db96e554ab13b905742ffc4f710e04e1dd72427ee707f1d951141267712 patch-3.4.65.xz 152b891e6969a0628f760aebf04e7b4cfd9e93c73fd1f61d9c50a2e3b812bff4f35f2b2a13f88319a106fb6d9929b83bc59384ddb651b17ea158739523ad252575a patch-3.10.18.xz
153d0f535f941553d71da11f372e675e8c4faa42cad4e5eccecb0fd784e3ed9502611912ef00e457afd91d29dd0577df7a475f5c69c442bdac655397f44b55310da patch-3.4.65-vs2.3.3.9.diff 15395b4e2768da2f60347885dac3094803c65f1ba205a76ef58c2f577394e0a4c32f21570467b09d1c7301021fd49169784b2a261ebf7469d64161e55784e067297 patch-3.10.18-vs2.3.6.6.diff
1540314ff29551dfde45fe05d43cb571348d955b5338b33acb26e29fa80f73ef28f34bbdf01006e4aecee372f3863517357a99cdec08b183a8dd9121ee9d0314b2e aslr-pie.patch 15441c74619359791a65dc2c017e8fdae9e8614c8c6d3306bec59dac84bc74455ea1b9c5d35d98c7ce414d8621d91c9dbe868916a8b89be6c60d1013235ef5c21ab aslr-pie.patch
155f12f999c84f724a4ac20a736c7f56671e23b2a9ddce4b0576dc17d0b3e8f319f5c4bc40b58992eba75ace44148018d85de24b2516d0a83240cd0ca3803606eae kernelconfig.x86 15554c20b88b04d29bd4985b9ff0dd84ba5356719d905a5efc73258a9517419df0d144bfd96963abe4b781d6eda6acb02b4116e60fa878b6d932b5f8d66fc31e7c3 kernelconfig.x86
1564cf43a7fc609e9822919e5706f38c03ef72deae2eae6b7d4c4ca7f9f29bccd1f01c0d65660a0c5234df6c2123a1d0c797dbdcb57ca5559e39644704426657f3e kernelconfig.x86_64" 156ff258d9fcc660b608e3ba3bd1f9384504e6ef12cc440931784e6badfdf9f67d0e06f1e23aeb070b5e525c81467be542c7e313940bf6e49e9c905003047a3d146 kernelconfig.x86_64"
diff --git a/main/linux-vserver/aslr-pie.patch b/main/linux-vserver/aslr-pie.patch
index 8b907e447e..61657061c8 100644
--- a/main/linux-vserver/aslr-pie.patch
+++ b/main/linux-vserver/aslr-pie.patch
@@ -1,39 +1,8 @@
1From a72b1fccf6c7c54c7a3ceef525b615b26b38f4a4 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
3Date: Tue, 1 Oct 2013 13:46:04 +0300
4Subject: [PATCH 3.4.63-vanilla] fs/binfmt_elf: fix memory map for PIE applications
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9arch/x86/include/asm/elf.h comment says:
10"
11ELF_ET_DYN_BASE is the location that an ET_DYN program is loaded
12if exec'ed. Typical use of this is to invoke "./ld.so someprog"
13to test out a new version of the loader. We need to make sure
14that it is out of the way of the program that it will "exec",
15and that there is sufficient room for the brk.
16"
17
18In case we have main application linked as PIE, this will cause
19problems as the main program itself will go the memory location
20that allows very little heap.
21
22This fixes the loader to detect PIE application by checking if
23elf_interpreter is requested, and loads them to beginning of the
24address space instead of the specially crafted place for elf
25interpreter.
26
27Signed-off-by: Timo Teräs <timo.teras@iki.fi>
28---
29 fs/binfmt_elf.c | 17 ++++++++---------
30 1 file changed, 8 insertions(+), 9 deletions(-)
31
32diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c 1diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
33index a009b9e..b3723a2 100644 2index 3aac8e9..4711413 100644
34--- a/fs/binfmt_elf.c 3--- a/fs/binfmt_elf.c
35+++ b/fs/binfmt_elf.c 4+++ b/fs/binfmt_elf.c
36@@ -790,20 +790,19 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) 5@@ -804,21 +804,19 @@ static int load_elf_binary(struct linux_binprm *bprm)
37 * default mmap base, as well as whatever program they 6 * default mmap base, as well as whatever program they
38 * might try to exec. This is because the brk will 7 * might try to exec. This is because the brk will
39 * follow the loader, and is not movable. */ 8 * follow the loader, and is not movable. */
@@ -43,12 +12,11 @@ index a009b9e..b3723a2 100644
43+ load_bias = ELF_ET_DYN_BASE; 12+ load_bias = ELF_ET_DYN_BASE;
44 #ifdef CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE 13 #ifdef CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE
45 /* Memory randomization might have been switched off 14 /* Memory randomization might have been switched off
46- * in runtime via sysctl. 15 * in runtime via sysctl or explicit setting of
16 * personality flags.
47- * If that is the case, retain the original non-zero 17- * If that is the case, retain the original non-zero
48- * load_bias value in order to establish proper 18- * load_bias value in order to establish proper
49- * non-randomized mappings. 19- * non-randomized mappings.
50+ * in runtime via sysctl or explicit setting of
51+ * ersonality flags.
52 */ 20 */
53 if (current->flags & PF_RANDOMIZE) 21 if (current->flags & PF_RANDOMIZE)
54- load_bias = 0; 22- load_bias = 0;
@@ -56,13 +24,9 @@ index a009b9e..b3723a2 100644
56- load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); 24- load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr);
57-#else 25-#else
58- load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); 26- load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr);
59+ load_bias += (get_random_int() & STACK_RND_MASK) << PAGE_SHIFT; 27+ load_bias = (get_random_int() & STACK_RND_MASK) << PAGE_SHIFT;
60 #endif 28 #endif
61+ load_bias = ELF_PAGESTART(vaddr + load_bias); 29+ load_bias = ELF_PAGESTART(load_bias - vaddr);
62 } 30 }
63 31
64 error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt, 32 error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,
65--
661.8.4
67
68
diff --git a/main/linux-vserver/kernelconfig.x86 b/main/linux-vserver/kernelconfig.x86
index 1ddd27cdb7..01bf045330 100644
--- a/main/linux-vserver/kernelconfig.x86
+++ b/main/linux-vserver/kernelconfig.x86
@@ -1,18 +1,13 @@
1# 1#
2# Automatically generated file; DO NOT EDIT. 2# Automatically generated file; DO NOT EDIT.
3# Linux/i386 3.4.51-vs2.3.3.9 Kernel Configuration 3# Linux/x86 3.10.18-vs2.3.6.6 Kernel Configuration
4# 4#
5# CONFIG_64BIT is not set 5# CONFIG_64BIT is not set
6CONFIG_X86_32=y 6CONFIG_X86_32=y
7# CONFIG_X86_64 is not set
8CONFIG_X86=y 7CONFIG_X86=y
9CONFIG_INSTRUCTION_DECODER=y 8CONFIG_INSTRUCTION_DECODER=y
10CONFIG_OUTPUT_FORMAT="elf32-i386" 9CONFIG_OUTPUT_FORMAT="elf32-i386"
11CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" 10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
12CONFIG_GENERIC_CMOS_UPDATE=y
13CONFIG_CLOCKSOURCE_WATCHDOG=y
14CONFIG_GENERIC_CLOCKEVENTS=y
15CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
16CONFIG_LOCKDEP_SUPPORT=y 11CONFIG_LOCKDEP_SUPPORT=y
17CONFIG_STACKTRACE_SUPPORT=y 12CONFIG_STACKTRACE_SUPPORT=y
18CONFIG_HAVE_LATENCYTOP_SUPPORT=y 13CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -22,15 +17,10 @@ CONFIG_NEED_SG_DMA_LENGTH=y
22CONFIG_GENERIC_ISA_DMA=y 17CONFIG_GENERIC_ISA_DMA=y
23CONFIG_GENERIC_BUG=y 18CONFIG_GENERIC_BUG=y
24CONFIG_GENERIC_HWEIGHT=y 19CONFIG_GENERIC_HWEIGHT=y
25CONFIG_GENERIC_GPIO=y
26CONFIG_ARCH_MAY_HAVE_PC_FDC=y 20CONFIG_ARCH_MAY_HAVE_PC_FDC=y
27# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
28CONFIG_RWSEM_XCHGADD_ALGORITHM=y 21CONFIG_RWSEM_XCHGADD_ALGORITHM=y
29CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
30CONFIG_GENERIC_CALIBRATE_DELAY=y 22CONFIG_GENERIC_CALIBRATE_DELAY=y
31# CONFIG_GENERIC_TIME_VSYSCALL is not set
32CONFIG_ARCH_HAS_CPU_RELAX=y 23CONFIG_ARCH_HAS_CPU_RELAX=y
33CONFIG_ARCH_HAS_DEFAULT_IDLE=y
34CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y 24CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
35CONFIG_ARCH_HAS_CPU_AUTOPROBE=y 25CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
36CONFIG_HAVE_SETUP_PER_CPU_AREA=y 26CONFIG_HAVE_SETUP_PER_CPU_AREA=y
@@ -47,16 +37,15 @@ CONFIG_X86_32_SMP=y
47CONFIG_X86_HT=y 37CONFIG_X86_HT=y
48CONFIG_X86_32_LAZY_GS=y 38CONFIG_X86_32_LAZY_GS=y
49CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" 39CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
50CONFIG_KTIME_SCALAR=y
51CONFIG_ARCH_CPU_PROBE_RELEASE=y 40CONFIG_ARCH_CPU_PROBE_RELEASE=y
41CONFIG_ARCH_SUPPORTS_UPROBES=y
52CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 42CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
53CONFIG_HAVE_IRQ_WORK=y
54CONFIG_IRQ_WORK=y 43CONFIG_IRQ_WORK=y
44CONFIG_BUILDTIME_EXTABLE_SORT=y
55 45
56# 46#
57# General setup 47# General setup
58# 48#
59CONFIG_EXPERIMENTAL=y
60CONFIG_INIT_ENV_ARG_LIMIT=32 49CONFIG_INIT_ENV_ARG_LIMIT=32
61CONFIG_CROSS_COMPILE="" 50CONFIG_CROSS_COMPILE=""
62CONFIG_LOCALVERSION="" 51CONFIG_LOCALVERSION=""
@@ -76,13 +65,7 @@ CONFIG_SWAP=y
76CONFIG_SYSVIPC=y 65CONFIG_SYSVIPC=y
77CONFIG_SYSVIPC_SYSCTL=y 66CONFIG_SYSVIPC_SYSCTL=y
78# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
79CONFIG_BSD_PROCESS_ACCT=y
80CONFIG_BSD_PROCESS_ACCT_V3=y
81# CONFIG_FHANDLE is not set 68# CONFIG_FHANDLE is not set
82CONFIG_TASKSTATS=y
83CONFIG_TASK_DELAY_ACCT=y
84CONFIG_TASK_XACCT=y
85CONFIG_TASK_IO_ACCOUNTING=y
86# CONFIG_AUDIT is not set 69# CONFIG_AUDIT is not set
87CONFIG_HAVE_GENERIC_HARDIRQS=y 70CONFIG_HAVE_GENERIC_HARDIRQS=y
88 71
@@ -94,22 +77,58 @@ CONFIG_GENERIC_IRQ_PROBE=y
94CONFIG_GENERIC_IRQ_SHOW=y 77CONFIG_GENERIC_IRQ_SHOW=y
95CONFIG_GENERIC_PENDING_IRQ=y 78CONFIG_GENERIC_PENDING_IRQ=y
96CONFIG_GENERIC_IRQ_CHIP=y 79CONFIG_GENERIC_IRQ_CHIP=y
80CONFIG_IRQ_DOMAIN=y
81# CONFIG_IRQ_DOMAIN_DEBUG is not set
97CONFIG_IRQ_FORCED_THREADING=y 82CONFIG_IRQ_FORCED_THREADING=y
98CONFIG_SPARSE_IRQ=y 83CONFIG_SPARSE_IRQ=y
84CONFIG_CLOCKSOURCE_WATCHDOG=y
85CONFIG_KTIME_SCALAR=y
86CONFIG_GENERIC_CLOCKEVENTS=y
87CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
88CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
89CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
90CONFIG_GENERIC_CMOS_UPDATE=y
91
92#
93# Timers subsystem
94#
95CONFIG_TICK_ONESHOT=y
96CONFIG_NO_HZ_COMMON=y
97# CONFIG_HZ_PERIODIC is not set
98CONFIG_NO_HZ_IDLE=y
99CONFIG_NO_HZ=y
100CONFIG_HIGH_RES_TIMERS=y
101
102#
103# CPU/Task time and stats accounting
104#
105# CONFIG_TICK_CPU_ACCOUNTING is not set
106CONFIG_IRQ_TIME_ACCOUNTING=y
107CONFIG_BSD_PROCESS_ACCT=y
108CONFIG_BSD_PROCESS_ACCT_V3=y
109CONFIG_TASKSTATS=y
110CONFIG_TASK_DELAY_ACCT=y
111CONFIG_TASK_XACCT=y
112CONFIG_TASK_IO_ACCOUNTING=y
99 113
100# 114#
101# RCU Subsystem 115# RCU Subsystem
102# 116#
103CONFIG_TREE_RCU=y 117CONFIG_TREE_RCU=y
104# CONFIG_PREEMPT_RCU is not set 118# CONFIG_PREEMPT_RCU is not set
119CONFIG_RCU_STALL_COMMON=y
105CONFIG_RCU_FANOUT=32 120CONFIG_RCU_FANOUT=32
121CONFIG_RCU_FANOUT_LEAF=16
106# CONFIG_RCU_FANOUT_EXACT is not set 122# CONFIG_RCU_FANOUT_EXACT is not set
107CONFIG_RCU_FAST_NO_HZ=y 123CONFIG_RCU_FAST_NO_HZ=y
108# CONFIG_TREE_RCU_TRACE is not set 124# CONFIG_TREE_RCU_TRACE is not set
125# CONFIG_RCU_NOCB_CPU is not set
109CONFIG_IKCONFIG=m 126CONFIG_IKCONFIG=m
110CONFIG_IKCONFIG_PROC=y 127CONFIG_IKCONFIG_PROC=y
111CONFIG_LOG_BUF_SHIFT=14 128CONFIG_LOG_BUF_SHIFT=14
112CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y 129CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
130CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
131CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y
113CONFIG_CGROUPS=y 132CONFIG_CGROUPS=y
114# CONFIG_CGROUP_DEBUG is not set 133# CONFIG_CGROUP_DEBUG is not set
115CONFIG_CGROUP_FREEZER=y 134CONFIG_CGROUP_FREEZER=y
@@ -117,9 +136,9 @@ CONFIG_CGROUP_DEVICE=y
117# CONFIG_CPUSETS is not set 136# CONFIG_CPUSETS is not set
118CONFIG_CGROUP_CPUACCT=y 137CONFIG_CGROUP_CPUACCT=y
119CONFIG_RESOURCE_COUNTERS=y 138CONFIG_RESOURCE_COUNTERS=y
120CONFIG_CGROUP_MEM_RES_CTLR=y 139CONFIG_MEMCG=y
121# CONFIG_CGROUP_MEM_RES_CTLR_SWAP is not set 140# CONFIG_MEMCG_SWAP is not set
122# CONFIG_CGROUP_MEM_RES_CTLR_KMEM is not set 141# CONFIG_MEMCG_KMEM is not set
123# CONFIG_CGROUP_PERF is not set 142# CONFIG_CGROUP_PERF is not set
124CONFIG_CGROUP_SCHED=y 143CONFIG_CGROUP_SCHED=y
125CONFIG_FAIR_GROUP_SCHED=y 144CONFIG_FAIR_GROUP_SCHED=y
@@ -133,6 +152,8 @@ CONFIG_UTS_NS=y
133CONFIG_IPC_NS=y 152CONFIG_IPC_NS=y
134CONFIG_PID_NS=y 153CONFIG_PID_NS=y
135CONFIG_NET_NS=y 154CONFIG_NET_NS=y
155CONFIG_UIDGID_CONVERTED=y
156# CONFIG_UIDGID_STRICT_TYPE_CHECKS is not set
136CONFIG_SCHED_AUTOGROUP=y 157CONFIG_SCHED_AUTOGROUP=y
137CONFIG_MM_OWNER=y 158CONFIG_MM_OWNER=y
138# CONFIG_SYSFS_DEPRECATED is not set 159# CONFIG_SYSFS_DEPRECATED is not set
@@ -147,17 +168,19 @@ CONFIG_RD_LZO=y
147CONFIG_CC_OPTIMIZE_FOR_SIZE=y 168CONFIG_CC_OPTIMIZE_FOR_SIZE=y
148CONFIG_SYSCTL=y 169CONFIG_SYSCTL=y
149CONFIG_ANON_INODES=y 170CONFIG_ANON_INODES=y
171CONFIG_HAVE_UID16=y
172CONFIG_SYSCTL_EXCEPTION_TRACE=y
173CONFIG_HOTPLUG=y
174CONFIG_HAVE_PCSPKR_PLATFORM=y
150CONFIG_EXPERT=y 175CONFIG_EXPERT=y
151CONFIG_UID16=y 176CONFIG_UID16=y
152CONFIG_SYSCTL_SYSCALL=y 177CONFIG_SYSCTL_SYSCALL=y
153CONFIG_KALLSYMS=y 178CONFIG_KALLSYMS=y
154CONFIG_KALLSYMS_ALL=y 179CONFIG_KALLSYMS_ALL=y
155CONFIG_HOTPLUG=y
156CONFIG_PRINTK=y 180CONFIG_PRINTK=y
157CONFIG_BUG=y 181CONFIG_BUG=y
158CONFIG_ELF_CORE=y 182CONFIG_ELF_CORE=y
159CONFIG_PCSPKR_PLATFORM=y 183CONFIG_PCSPKR_PLATFORM=y
160CONFIG_HAVE_PCSPKR_PLATFORM=y
161CONFIG_BASE_FULL=y 184CONFIG_BASE_FULL=y
162CONFIG_FUTEX=y 185CONFIG_FUTEX=y
163CONFIG_EPOLL=y 186CONFIG_EPOLL=y
@@ -166,6 +189,7 @@ CONFIG_TIMERFD=y
166CONFIG_EVENTFD=y 189CONFIG_EVENTFD=y
167CONFIG_SHMEM=y 190CONFIG_SHMEM=y
168CONFIG_AIO=y 191CONFIG_AIO=y
192CONFIG_PCI_QUIRKS=y
169CONFIG_EMBEDDED=y 193CONFIG_EMBEDDED=y
170CONFIG_HAVE_PERF_EVENTS=y 194CONFIG_HAVE_PERF_EVENTS=y
171 195
@@ -173,10 +197,8 @@ CONFIG_HAVE_PERF_EVENTS=y
173# Kernel Performance Events And Counters 197# Kernel Performance Events And Counters
174# 198#
175CONFIG_PERF_EVENTS=y 199CONFIG_PERF_EVENTS=y
176# CONFIG_PERF_COUNTERS is not set
177# CONFIG_DEBUG_PERF_USE_VMALLOC is not set 200# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
178CONFIG_VM_EVENT_COUNTERS=y 201CONFIG_VM_EVENT_COUNTERS=y
179CONFIG_PCI_QUIRKS=y
180# CONFIG_SLUB_DEBUG is not set 202# CONFIG_SLUB_DEBUG is not set
181# CONFIG_COMPAT_BRK is not set 203# CONFIG_COMPAT_BRK is not set
182# CONFIG_SLAB is not set 204# CONFIG_SLAB is not set
@@ -190,27 +212,42 @@ CONFIG_OPROFILE_NMI_TIMER=y
190CONFIG_KPROBES=y 212CONFIG_KPROBES=y
191# CONFIG_JUMP_LABEL is not set 213# CONFIG_JUMP_LABEL is not set
192CONFIG_OPTPROBES=y 214CONFIG_OPTPROBES=y
215# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
193CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 216CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
217CONFIG_ARCH_USE_BUILTIN_BSWAP=y
194CONFIG_KRETPROBES=y 218CONFIG_KRETPROBES=y
195CONFIG_USER_RETURN_NOTIFIER=y 219CONFIG_USER_RETURN_NOTIFIER=y
196CONFIG_HAVE_IOREMAP_PROT=y 220CONFIG_HAVE_IOREMAP_PROT=y
197CONFIG_HAVE_KPROBES=y 221CONFIG_HAVE_KPROBES=y
198CONFIG_HAVE_KRETPROBES=y 222CONFIG_HAVE_KRETPROBES=y
199CONFIG_HAVE_OPTPROBES=y 223CONFIG_HAVE_OPTPROBES=y
224CONFIG_HAVE_KPROBES_ON_FTRACE=y
200CONFIG_HAVE_ARCH_TRACEHOOK=y 225CONFIG_HAVE_ARCH_TRACEHOOK=y
201CONFIG_HAVE_DMA_ATTRS=y 226CONFIG_HAVE_DMA_ATTRS=y
227CONFIG_HAVE_DMA_CONTIGUOUS=y
202CONFIG_USE_GENERIC_SMP_HELPERS=y 228CONFIG_USE_GENERIC_SMP_HELPERS=y
229CONFIG_GENERIC_SMP_IDLE_THREAD=y
203CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y 230CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
204CONFIG_HAVE_DMA_API_DEBUG=y 231CONFIG_HAVE_DMA_API_DEBUG=y
205CONFIG_HAVE_HW_BREAKPOINT=y 232CONFIG_HAVE_HW_BREAKPOINT=y
206CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y 233CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
207CONFIG_HAVE_USER_RETURN_NOTIFIER=y 234CONFIG_HAVE_USER_RETURN_NOTIFIER=y
208CONFIG_HAVE_PERF_EVENTS_NMI=y 235CONFIG_HAVE_PERF_EVENTS_NMI=y
236CONFIG_HAVE_PERF_REGS=y
237CONFIG_HAVE_PERF_USER_STACK_DUMP=y
209CONFIG_HAVE_ARCH_JUMP_LABEL=y 238CONFIG_HAVE_ARCH_JUMP_LABEL=y
210CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y 239CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
211CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y 240CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
212CONFIG_HAVE_CMPXCHG_LOCAL=y 241CONFIG_HAVE_CMPXCHG_LOCAL=y
213CONFIG_HAVE_CMPXCHG_DOUBLE=y 242CONFIG_HAVE_CMPXCHG_DOUBLE=y
243CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
244CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
245CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
246CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
247CONFIG_MODULES_USE_ELF_REL=y
248CONFIG_CLONE_BACKWARDS=y
249CONFIG_OLD_SIGSUSPEND3=y
250CONFIG_OLD_SIGACTION=y
214 251
215# 252#
216# GCOV-based kernel profiling 253# GCOV-based kernel profiling
@@ -225,6 +262,7 @@ CONFIG_MODULE_UNLOAD=y
225# CONFIG_MODULE_FORCE_UNLOAD is not set 262# CONFIG_MODULE_FORCE_UNLOAD is not set
226CONFIG_MODVERSIONS=y 263CONFIG_MODVERSIONS=y
227# CONFIG_MODULE_SRCVERSION_ALL is not set 264# CONFIG_MODULE_SRCVERSION_ALL is not set
265# CONFIG_MODULE_SIG is not set
228CONFIG_STOP_MACHINE=y 266CONFIG_STOP_MACHINE=y
229CONFIG_BLOCK=y 267CONFIG_BLOCK=y
230CONFIG_LBDAF=y 268CONFIG_LBDAF=y
@@ -267,33 +305,12 @@ CONFIG_DEFAULT_CFQ=y
267CONFIG_DEFAULT_IOSCHED="cfq" 305CONFIG_DEFAULT_IOSCHED="cfq"
268CONFIG_PREEMPT_NOTIFIERS=y 306CONFIG_PREEMPT_NOTIFIERS=y
269CONFIG_PADATA=y 307CONFIG_PADATA=y
270# CONFIG_INLINE_SPIN_TRYLOCK is not set 308CONFIG_ASN1=m
271# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
272# CONFIG_INLINE_SPIN_LOCK is not set
273# CONFIG_INLINE_SPIN_LOCK_BH is not set
274# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
275# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
276# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
277CONFIG_INLINE_SPIN_UNLOCK_IRQ=y 309CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
278# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
279# CONFIG_INLINE_READ_TRYLOCK is not set
280# CONFIG_INLINE_READ_LOCK is not set
281# CONFIG_INLINE_READ_LOCK_BH is not set
282# CONFIG_INLINE_READ_LOCK_IRQ is not set
283# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
284CONFIG_INLINE_READ_UNLOCK=y 310CONFIG_INLINE_READ_UNLOCK=y
285# CONFIG_INLINE_READ_UNLOCK_BH is not set
286CONFIG_INLINE_READ_UNLOCK_IRQ=y 311CONFIG_INLINE_READ_UNLOCK_IRQ=y
287# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
288# CONFIG_INLINE_WRITE_TRYLOCK is not set
289# CONFIG_INLINE_WRITE_LOCK is not set
290# CONFIG_INLINE_WRITE_LOCK_BH is not set
291# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
292# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
293CONFIG_INLINE_WRITE_UNLOCK=y 312CONFIG_INLINE_WRITE_UNLOCK=y
294# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
295CONFIG_INLINE_WRITE_UNLOCK_IRQ=y 313CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
296# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
297CONFIG_MUTEX_SPIN_ON_OWNER=y 314CONFIG_MUTEX_SPIN_ON_OWNER=y
298CONFIG_FREEZER=y 315CONFIG_FREEZER=y
299 316
@@ -301,34 +318,29 @@ CONFIG_FREEZER=y
301# Processor type and features 318# Processor type and features
302# 319#
303CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
304CONFIG_TICK_ONESHOT=y
305CONFIG_NO_HZ=y
306CONFIG_HIGH_RES_TIMERS=y
307CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
308CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
309CONFIG_SMP=y 321CONFIG_SMP=y
310CONFIG_X86_MPPARSE=y 322CONFIG_X86_MPPARSE=y
311CONFIG_X86_BIGSMP=y 323CONFIG_X86_BIGSMP=y
312CONFIG_X86_EXTENDED_PLATFORM=y 324CONFIG_X86_EXTENDED_PLATFORM=y
325# CONFIG_X86_GOLDFISH is not set
313CONFIG_X86_WANT_INTEL_MID=y 326CONFIG_X86_WANT_INTEL_MID=y
314# CONFIG_X86_MDFLD is not set 327# CONFIG_X86_MDFLD is not set
328# CONFIG_X86_INTEL_LPSS is not set
315# CONFIG_X86_RDC321X is not set 329# CONFIG_X86_RDC321X is not set
316# CONFIG_X86_32_NON_STANDARD is not set 330# CONFIG_X86_32_NON_STANDARD is not set
317# CONFIG_X86_32_IRIS is not set 331# CONFIG_X86_32_IRIS is not set
318CONFIG_SCHED_OMIT_FRAME_POINTER=y 332CONFIG_SCHED_OMIT_FRAME_POINTER=y
319CONFIG_PARAVIRT_GUEST=y 333CONFIG_HYPERVISOR_GUEST=y
320# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set 334CONFIG_PARAVIRT=y
335# CONFIG_PARAVIRT_DEBUG is not set
336# CONFIG_PARAVIRT_SPINLOCKS is not set
321# CONFIG_XEN_PRIVILEGED_GUEST is not set 337# CONFIG_XEN_PRIVILEGED_GUEST is not set
322CONFIG_KVM_CLOCK=y
323CONFIG_KVM_GUEST=y 338CONFIG_KVM_GUEST=y
324# CONFIG_LGUEST_GUEST is not set 339# CONFIG_LGUEST_GUEST is not set
325CONFIG_PARAVIRT=y 340# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
326# CONFIG_PARAVIRT_SPINLOCKS is not set
327CONFIG_PARAVIRT_CLOCK=y 341CONFIG_PARAVIRT_CLOCK=y
328# CONFIG_PARAVIRT_DEBUG is not set
329CONFIG_NO_BOOTMEM=y 342CONFIG_NO_BOOTMEM=y
330# CONFIG_MEMTEST is not set 343# CONFIG_MEMTEST is not set
331# CONFIG_M386 is not set
332# CONFIG_M486 is not set 344# CONFIG_M486 is not set
333# CONFIG_M586 is not set 345# CONFIG_M586 is not set
334# CONFIG_M586TSC is not set 346# CONFIG_M586TSC is not set
@@ -355,14 +367,8 @@ CONFIG_M686=y
355# CONFIG_MATOM is not set 367# CONFIG_MATOM is not set
356CONFIG_X86_GENERIC=y 368CONFIG_X86_GENERIC=y
357CONFIG_X86_INTERNODE_CACHE_SHIFT=6 369CONFIG_X86_INTERNODE_CACHE_SHIFT=6
358CONFIG_X86_CMPXCHG=y
359CONFIG_X86_L1_CACHE_SHIFT=6 370CONFIG_X86_L1_CACHE_SHIFT=6
360CONFIG_X86_XADD=y
361# CONFIG_X86_PPRO_FENCE is not set 371# CONFIG_X86_PPRO_FENCE is not set
362CONFIG_X86_WP_WORKS_OK=y
363CONFIG_X86_INVLPG=y
364CONFIG_X86_BSWAP=y
365CONFIG_X86_POPAD_OK=y
366CONFIG_X86_INTEL_USERCOPY=y 372CONFIG_X86_INTEL_USERCOPY=y
367CONFIG_X86_USE_PPRO_CHECKSUM=y 373CONFIG_X86_USE_PPRO_CHECKSUM=y
368CONFIG_X86_TSC=y 374CONFIG_X86_TSC=y
@@ -380,11 +386,9 @@ CONFIG_CPU_SUP_UMC_32=y
380CONFIG_HPET_TIMER=y 386CONFIG_HPET_TIMER=y
381CONFIG_HPET_EMULATE_RTC=y 387CONFIG_HPET_EMULATE_RTC=y
382CONFIG_DMI=y 388CONFIG_DMI=y
383# CONFIG_IOMMU_HELPER is not set
384CONFIG_NR_CPUS=32 389CONFIG_NR_CPUS=32
385CONFIG_SCHED_SMT=y 390CONFIG_SCHED_SMT=y
386CONFIG_SCHED_MC=y 391CONFIG_SCHED_MC=y
387CONFIG_IRQ_TIME_ACCOUNTING=y
388# CONFIG_PREEMPT_NONE is not set 392# CONFIG_PREEMPT_NONE is not set
389CONFIG_PREEMPT_VOLUNTARY=y 393CONFIG_PREEMPT_VOLUNTARY=y
390# CONFIG_PREEMPT is not set 394# CONFIG_PREEMPT is not set
@@ -400,6 +404,9 @@ CONFIG_MICROCODE=m
400CONFIG_MICROCODE_INTEL=y 404CONFIG_MICROCODE_INTEL=y
401CONFIG_MICROCODE_AMD=y 405CONFIG_MICROCODE_AMD=y
402CONFIG_MICROCODE_OLD_INTERFACE=y 406CONFIG_MICROCODE_OLD_INTERFACE=y
407CONFIG_MICROCODE_INTEL_LIB=y
408CONFIG_MICROCODE_INTEL_EARLY=y
409CONFIG_MICROCODE_EARLY=y
403CONFIG_X86_MSR=m 410CONFIG_X86_MSR=m
404CONFIG_X86_CPUID=m 411CONFIG_X86_CPUID=m
405# CONFIG_NOHIGHMEM is not set 412# CONFIG_NOHIGHMEM is not set
@@ -412,8 +419,6 @@ CONFIG_VMSPLIT_3G=y
412# CONFIG_VMSPLIT_1G is not set 419# CONFIG_VMSPLIT_1G is not set
413CONFIG_PAGE_OFFSET=0xC0000000 420CONFIG_PAGE_OFFSET=0xC0000000
414CONFIG_HIGHMEM=y 421CONFIG_HIGHMEM=y
415# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
416# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set
417CONFIG_NEED_NODE_MEMMAP_SIZE=y 422CONFIG_NEED_NODE_MEMMAP_SIZE=y
418CONFIG_ARCH_FLATMEM_ENABLE=y 423CONFIG_ARCH_FLATMEM_ENABLE=y
419CONFIG_ARCH_SPARSEMEM_ENABLE=y 424CONFIG_ARCH_SPARSEMEM_ENABLE=y
@@ -428,8 +433,10 @@ CONFIG_SPARSEMEM_STATIC=y
428CONFIG_HAVE_MEMBLOCK=y 433CONFIG_HAVE_MEMBLOCK=y
429CONFIG_HAVE_MEMBLOCK_NODE_MAP=y 434CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
430CONFIG_ARCH_DISCARD_MEMBLOCK=y 435CONFIG_ARCH_DISCARD_MEMBLOCK=y
436# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
431# CONFIG_MEMORY_HOTPLUG is not set 437# CONFIG_MEMORY_HOTPLUG is not set
432CONFIG_SPLIT_PTLOCK_CPUS=4 438CONFIG_SPLIT_PTLOCK_CPUS=4
439CONFIG_BALLOON_COMPACTION=y
433CONFIG_COMPACTION=y 440CONFIG_COMPACTION=y
434CONFIG_MIGRATION=y 441CONFIG_MIGRATION=y
435# CONFIG_PHYS_ADDR_T_64BIT is not set 442# CONFIG_PHYS_ADDR_T_64BIT is not set
@@ -442,7 +449,9 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
442CONFIG_TRANSPARENT_HUGEPAGE=y 449CONFIG_TRANSPARENT_HUGEPAGE=y
443CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y 450CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
444# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set 451# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
452CONFIG_CROSS_MEMORY_ATTACH=y
445# CONFIG_CLEANCACHE is not set 453# CONFIG_CLEANCACHE is not set
454# CONFIG_FRONTSWAP is not set
446# CONFIG_HIGHPTE is not set 455# CONFIG_HIGHPTE is not set
447# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set 456# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
448CONFIG_X86_RESERVE_LOW=64 457CONFIG_X86_RESERVE_LOW=64
@@ -454,6 +463,7 @@ CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
454CONFIG_X86_PAT=y 463CONFIG_X86_PAT=y
455CONFIG_ARCH_USES_PG_UNCACHED=y 464CONFIG_ARCH_USES_PG_UNCACHED=y
456CONFIG_ARCH_RANDOM=y 465CONFIG_ARCH_RANDOM=y
466CONFIG_X86_SMAP=y
457# CONFIG_EFI is not set 467# CONFIG_EFI is not set
458# CONFIG_SECCOMP is not set 468# CONFIG_SECCOMP is not set
459# CONFIG_CC_STACKPROTECTOR is not set 469# CONFIG_CC_STACKPROTECTOR is not set
@@ -469,6 +479,8 @@ CONFIG_PHYSICAL_START=0x1000000
469# CONFIG_RELOCATABLE is not set 479# CONFIG_RELOCATABLE is not set
470CONFIG_PHYSICAL_ALIGN=0x1000000 480CONFIG_PHYSICAL_ALIGN=0x1000000
471CONFIG_HOTPLUG_CPU=y 481CONFIG_HOTPLUG_CPU=y
482# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
483# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
472# CONFIG_COMPAT_VDSO is not set 484# CONFIG_COMPAT_VDSO is not set
473# CONFIG_CMDLINE_BOOL is not set 485# CONFIG_CMDLINE_BOOL is not set
474CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 486CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -481,6 +493,8 @@ CONFIG_SUSPEND_FREEZER=y
481# CONFIG_HIBERNATION is not set 493# CONFIG_HIBERNATION is not set
482CONFIG_PM_SLEEP=y 494CONFIG_PM_SLEEP=y
483CONFIG_PM_SLEEP_SMP=y 495CONFIG_PM_SLEEP_SMP=y
496# CONFIG_PM_AUTOSLEEP is not set
497# CONFIG_PM_WAKELOCKS is not set
484# CONFIG_PM_RUNTIME is not set 498# CONFIG_PM_RUNTIME is not set
485CONFIG_PM=y 499CONFIG_PM=y
486# CONFIG_PM_DEBUG is not set 500# CONFIG_PM_DEBUG is not set
@@ -496,21 +510,22 @@ CONFIG_ACPI_BUTTON=m
496CONFIG_ACPI_VIDEO=m 510CONFIG_ACPI_VIDEO=m
497CONFIG_ACPI_FAN=m 511CONFIG_ACPI_FAN=m
498CONFIG_ACPI_DOCK=y 512CONFIG_ACPI_DOCK=y
513CONFIG_ACPI_I2C=m
499CONFIG_ACPI_PROCESSOR=m 514CONFIG_ACPI_PROCESSOR=m
500CONFIG_ACPI_IPMI=m 515CONFIG_ACPI_IPMI=m
501CONFIG_ACPI_HOTPLUG_CPU=y 516CONFIG_ACPI_HOTPLUG_CPU=y
502# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set 517# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
503CONFIG_ACPI_THERMAL=m 518CONFIG_ACPI_THERMAL=m
504# CONFIG_ACPI_CUSTOM_DSDT is not set 519# CONFIG_ACPI_CUSTOM_DSDT is not set
520# CONFIG_ACPI_INITRD_TABLE_OVERRIDE is not set
505CONFIG_ACPI_BLACKLIST_YEAR=0 521CONFIG_ACPI_BLACKLIST_YEAR=0
506# CONFIG_ACPI_DEBUG is not set 522# CONFIG_ACPI_DEBUG is not set
507CONFIG_ACPI_PCI_SLOT=m 523# CONFIG_ACPI_PCI_SLOT is not set
508CONFIG_X86_PM_TIMER=y 524CONFIG_X86_PM_TIMER=y
509CONFIG_ACPI_CONTAINER=m 525CONFIG_ACPI_CONTAINER=y
510CONFIG_ACPI_SBS=m 526CONFIG_ACPI_SBS=m
511CONFIG_ACPI_HED=m 527CONFIG_ACPI_HED=m
512# CONFIG_ACPI_CUSTOM_METHOD is not set 528# CONFIG_ACPI_CUSTOM_METHOD is not set
513CONFIG_ACPI_BGRT=m
514CONFIG_ACPI_APEI=y 529CONFIG_ACPI_APEI=y
515# CONFIG_ACPI_APEI_GHES is not set 530# CONFIG_ACPI_APEI_GHES is not set
516CONFIG_ACPI_APEI_EINJ=m 531CONFIG_ACPI_APEI_EINJ=m
@@ -523,6 +538,7 @@ CONFIG_ACPI_APEI_ERST_DEBUG=y
523# 538#
524CONFIG_CPU_FREQ=y 539CONFIG_CPU_FREQ=y
525CONFIG_CPU_FREQ_TABLE=m 540CONFIG_CPU_FREQ_TABLE=m
541CONFIG_CPU_FREQ_GOV_COMMON=y
526CONFIG_CPU_FREQ_STAT=m 542CONFIG_CPU_FREQ_STAT=m
527# CONFIG_CPU_FREQ_STAT_DETAILS is not set 543# CONFIG_CPU_FREQ_STAT_DETAILS is not set
528CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y 544CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
@@ -539,11 +555,14 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
539# 555#
540# x86 CPU frequency scaling drivers 556# x86 CPU frequency scaling drivers
541# 557#
558CONFIG_X86_INTEL_PSTATE=y
542CONFIG_X86_PCC_CPUFREQ=m 559CONFIG_X86_PCC_CPUFREQ=m
543CONFIG_X86_ACPI_CPUFREQ=m 560CONFIG_X86_ACPI_CPUFREQ=m
561CONFIG_X86_ACPI_CPUFREQ_CPB=y
544# CONFIG_X86_POWERNOW_K6 is not set 562# CONFIG_X86_POWERNOW_K6 is not set
545# CONFIG_X86_POWERNOW_K7 is not set 563# CONFIG_X86_POWERNOW_K7 is not set
546CONFIG_X86_POWERNOW_K8=m 564CONFIG_X86_POWERNOW_K8=m
565CONFIG_X86_AMD_FREQ_SENSITIVITY=m
547# CONFIG_X86_GX_SUSPMOD is not set 566# CONFIG_X86_GX_SUSPMOD is not set
548CONFIG_X86_SPEEDSTEP_CENTRINO=m 567CONFIG_X86_SPEEDSTEP_CENTRINO=m
549CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y 568CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
@@ -560,8 +579,10 @@ CONFIG_X86_P4_CLOCKMOD=m
560# 579#
561CONFIG_X86_SPEEDSTEP_LIB=m 580CONFIG_X86_SPEEDSTEP_LIB=m
562CONFIG_CPU_IDLE=y 581CONFIG_CPU_IDLE=y
582# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set
563CONFIG_CPU_IDLE_GOV_LADDER=y 583CONFIG_CPU_IDLE_GOV_LADDER=y
564CONFIG_CPU_IDLE_GOV_MENU=y 584CONFIG_CPU_IDLE_GOV_MENU=y
585# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
565CONFIG_INTEL_IDLE=y 586CONFIG_INTEL_IDLE=y
566 587
567# 588#
@@ -599,7 +620,6 @@ CONFIG_PCI_IOAPIC=y
599CONFIG_PCI_LABEL=y 620CONFIG_PCI_LABEL=y
600CONFIG_ISA_DMA_API=y 621CONFIG_ISA_DMA_API=y
601# CONFIG_ISA is not set 622# CONFIG_ISA is not set
602# CONFIG_MCA is not set
603# CONFIG_SCx200 is not set 623# CONFIG_SCx200 is not set
604# CONFIG_OLPC is not set 624# CONFIG_OLPC is not set
605CONFIG_ALIX=y 625CONFIG_ALIX=y
@@ -608,11 +628,8 @@ CONFIG_ALIX=y
608CONFIG_AMD_NB=y 628CONFIG_AMD_NB=y
609# CONFIG_PCCARD is not set 629# CONFIG_PCCARD is not set
610CONFIG_HOTPLUG_PCI=m 630CONFIG_HOTPLUG_PCI=m
611CONFIG_HOTPLUG_PCI_FAKE=m
612# CONFIG_HOTPLUG_PCI_COMPAQ is not set 631# CONFIG_HOTPLUG_PCI_COMPAQ is not set
613# CONFIG_HOTPLUG_PCI_IBM is not set 632# CONFIG_HOTPLUG_PCI_IBM is not set
614CONFIG_HOTPLUG_PCI_ACPI=m
615CONFIG_HOTPLUG_PCI_ACPI_IBM=m
616CONFIG_HOTPLUG_PCI_CPCI=y 633CONFIG_HOTPLUG_PCI_CPCI=y
617CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m 634CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
618CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m 635CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
@@ -625,9 +642,11 @@ CONFIG_HOTPLUG_PCI_SHPC=m
625CONFIG_BINFMT_ELF=y 642CONFIG_BINFMT_ELF=y
626CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y 643CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
627# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 644# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
645CONFIG_BINFMT_SCRIPT=y
628CONFIG_HAVE_AOUT=y 646CONFIG_HAVE_AOUT=y
629# CONFIG_BINFMT_AOUT is not set 647# CONFIG_BINFMT_AOUT is not set
630CONFIG_BINFMT_MISC=m 648CONFIG_BINFMT_MISC=m
649CONFIG_COREDUMP=y
631CONFIG_HAVE_ATOMIC_IOMAP=y 650CONFIG_HAVE_ATOMIC_IOMAP=y
632CONFIG_HAVE_TEXT_POKE_SMP=y 651CONFIG_HAVE_TEXT_POKE_SMP=y
633CONFIG_NET=y 652CONFIG_NET=y
@@ -636,9 +655,11 @@ CONFIG_NET=y
636# Networking options 655# Networking options
637# 656#
638CONFIG_PACKET=m 657CONFIG_PACKET=m
658CONFIG_PACKET_DIAG=m
639CONFIG_UNIX=y 659CONFIG_UNIX=y
640CONFIG_UNIX_DIAG=m 660CONFIG_UNIX_DIAG=m
641CONFIG_XFRM=y 661CONFIG_XFRM=y
662CONFIG_XFRM_ALGO=m
642CONFIG_XFRM_USER=m 663CONFIG_XFRM_USER=m
643CONFIG_XFRM_SUB_POLICY=y 664CONFIG_XFRM_SUB_POLICY=y
644CONFIG_XFRM_MIGRATE=y 665CONFIG_XFRM_MIGRATE=y
@@ -660,6 +681,7 @@ CONFIG_IP_PNP_BOOTP=y
660CONFIG_IP_PNP_RARP=y 681CONFIG_IP_PNP_RARP=y
661CONFIG_NET_IPIP=m 682CONFIG_NET_IPIP=m
662CONFIG_NET_IPGRE_DEMUX=y 683CONFIG_NET_IPGRE_DEMUX=y
684CONFIG_NET_IP_TUNNEL=m
663CONFIG_NET_IPGRE=m 685CONFIG_NET_IPGRE=m
664CONFIG_NET_IPGRE_BROADCAST=y 686CONFIG_NET_IPGRE_BROADCAST=y
665CONFIG_IP_MROUTE=y 687CONFIG_IP_MROUTE=y
@@ -668,6 +690,7 @@ CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
668CONFIG_IP_PIMSM_V2=y 690CONFIG_IP_PIMSM_V2=y
669CONFIG_ARPD=y 691CONFIG_ARPD=y
670CONFIG_SYN_COOKIES=y 692CONFIG_SYN_COOKIES=y
693# CONFIG_NET_IPVTI is not set
671CONFIG_INET_AH=m 694CONFIG_INET_AH=m
672CONFIG_INET_ESP=m 695CONFIG_INET_ESP=m
673CONFIG_INET_IPCOMP=m 696CONFIG_INET_IPCOMP=m
@@ -716,6 +739,7 @@ CONFIG_IPV6_SIT=m
716CONFIG_IPV6_SIT_6RD=y 739CONFIG_IPV6_SIT_6RD=y
717CONFIG_IPV6_NDISC_NODETYPE=y 740CONFIG_IPV6_NDISC_NODETYPE=y
718CONFIG_IPV6_TUNNEL=m 741CONFIG_IPV6_TUNNEL=m
742# CONFIG_IPV6_GRE is not set
719CONFIG_IPV6_MULTIPLE_TABLES=y 743CONFIG_IPV6_MULTIPLE_TABLES=y
720CONFIG_IPV6_SUBTREES=y 744CONFIG_IPV6_SUBTREES=y
721CONFIG_IPV6_MROUTE=y 745CONFIG_IPV6_MROUTE=y
@@ -761,6 +785,17 @@ CONFIG_NF_CONNTRACK_SIP=m
761CONFIG_NF_CONNTRACK_TFTP=m 785CONFIG_NF_CONNTRACK_TFTP=m
762CONFIG_NF_CT_NETLINK=m 786CONFIG_NF_CT_NETLINK=m
763CONFIG_NF_CT_NETLINK_TIMEOUT=m 787CONFIG_NF_CT_NETLINK_TIMEOUT=m
788# CONFIG_NETFILTER_NETLINK_QUEUE_CT is not set
789CONFIG_NF_NAT=m
790CONFIG_NF_NAT_NEEDED=y
791CONFIG_NF_NAT_PROTO_DCCP=m
792CONFIG_NF_NAT_PROTO_UDPLITE=m
793CONFIG_NF_NAT_PROTO_SCTP=m
794CONFIG_NF_NAT_AMANDA=m
795CONFIG_NF_NAT_FTP=m
796CONFIG_NF_NAT_IRC=m
797CONFIG_NF_NAT_SIP=m
798CONFIG_NF_NAT_TFTP=m
764CONFIG_NETFILTER_TPROXY=m 799CONFIG_NETFILTER_TPROXY=m
765CONFIG_NETFILTER_XTABLES=m 800CONFIG_NETFILTER_XTABLES=m
766 801
@@ -781,14 +816,17 @@ CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
781CONFIG_NETFILTER_XT_TARGET_CT=m 816CONFIG_NETFILTER_XT_TARGET_CT=m
782CONFIG_NETFILTER_XT_TARGET_DSCP=m 817CONFIG_NETFILTER_XT_TARGET_DSCP=m
783CONFIG_NETFILTER_XT_TARGET_HL=m 818CONFIG_NETFILTER_XT_TARGET_HL=m
819# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
784CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m 820CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
785CONFIG_NETFILTER_XT_TARGET_LED=m 821CONFIG_NETFILTER_XT_TARGET_LED=m
786CONFIG_NETFILTER_XT_TARGET_LOG=m 822CONFIG_NETFILTER_XT_TARGET_LOG=m
787CONFIG_NETFILTER_XT_TARGET_MARK=m 823CONFIG_NETFILTER_XT_TARGET_MARK=m
824CONFIG_NETFILTER_XT_TARGET_NETMAP=m
788CONFIG_NETFILTER_XT_TARGET_NFLOG=m 825CONFIG_NETFILTER_XT_TARGET_NFLOG=m
789CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 826CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
790CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 827CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
791CONFIG_NETFILTER_XT_TARGET_RATEEST=m 828CONFIG_NETFILTER_XT_TARGET_RATEEST=m
829CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
792CONFIG_NETFILTER_XT_TARGET_TEE=m 830CONFIG_NETFILTER_XT_TARGET_TEE=m
793CONFIG_NETFILTER_XT_TARGET_TPROXY=m 831CONFIG_NETFILTER_XT_TARGET_TPROXY=m
794CONFIG_NETFILTER_XT_TARGET_TRACE=m 832CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -800,9 +838,11 @@ CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
800# Xtables matches 838# Xtables matches
801# 839#
802CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m 840CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
841# CONFIG_NETFILTER_XT_MATCH_BPF is not set
803CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 842CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
804CONFIG_NETFILTER_XT_MATCH_COMMENT=m 843CONFIG_NETFILTER_XT_MATCH_COMMENT=m
805CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 844CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
845# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
806CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 846CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
807CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 847CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
808CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 848CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
@@ -900,7 +940,6 @@ CONFIG_IP_VS_PE_SIP=m
900CONFIG_NF_DEFRAG_IPV4=m 940CONFIG_NF_DEFRAG_IPV4=m
901CONFIG_NF_CONNTRACK_IPV4=m 941CONFIG_NF_CONNTRACK_IPV4=m
902CONFIG_NF_CONNTRACK_PROC_COMPAT=y 942CONFIG_NF_CONNTRACK_PROC_COMPAT=y
903CONFIG_IP_NF_QUEUE=m
904CONFIG_IP_NF_IPTABLES=m 943CONFIG_IP_NF_IPTABLES=m
905CONFIG_IP_NF_MATCH_AH=m 944CONFIG_IP_NF_MATCH_AH=m
906CONFIG_IP_NF_MATCH_ECN=m 945CONFIG_IP_NF_MATCH_ECN=m
@@ -909,23 +948,14 @@ CONFIG_IP_NF_MATCH_TTL=m
909CONFIG_IP_NF_FILTER=m 948CONFIG_IP_NF_FILTER=m
910CONFIG_IP_NF_TARGET_REJECT=m 949CONFIG_IP_NF_TARGET_REJECT=m
911CONFIG_IP_NF_TARGET_ULOG=m 950CONFIG_IP_NF_TARGET_ULOG=m
912CONFIG_NF_NAT=m 951CONFIG_NF_NAT_IPV4=m
913CONFIG_NF_NAT_NEEDED=y
914CONFIG_IP_NF_TARGET_MASQUERADE=m 952CONFIG_IP_NF_TARGET_MASQUERADE=m
915CONFIG_IP_NF_TARGET_NETMAP=m 953CONFIG_IP_NF_TARGET_NETMAP=m
916CONFIG_IP_NF_TARGET_REDIRECT=m 954CONFIG_IP_NF_TARGET_REDIRECT=m
917CONFIG_NF_NAT_SNMP_BASIC=m 955CONFIG_NF_NAT_SNMP_BASIC=m
918CONFIG_NF_NAT_PROTO_DCCP=m
919CONFIG_NF_NAT_PROTO_GRE=m 956CONFIG_NF_NAT_PROTO_GRE=m
920CONFIG_NF_NAT_PROTO_UDPLITE=m
921CONFIG_NF_NAT_PROTO_SCTP=m
922CONFIG_NF_NAT_FTP=m
923CONFIG_NF_NAT_IRC=m
924CONFIG_NF_NAT_TFTP=m
925CONFIG_NF_NAT_AMANDA=m
926CONFIG_NF_NAT_PPTP=m 957CONFIG_NF_NAT_PPTP=m
927CONFIG_NF_NAT_H323=m 958CONFIG_NF_NAT_H323=m
928CONFIG_NF_NAT_SIP=m
929CONFIG_IP_NF_MANGLE=m 959CONFIG_IP_NF_MANGLE=m
930CONFIG_IP_NF_TARGET_CLUSTERIP=m 960CONFIG_IP_NF_TARGET_CLUSTERIP=m
931CONFIG_IP_NF_TARGET_ECN=m 961CONFIG_IP_NF_TARGET_ECN=m
@@ -941,7 +971,6 @@ CONFIG_IP_NF_ARP_MANGLE=m
941# 971#
942CONFIG_NF_DEFRAG_IPV6=m 972CONFIG_NF_DEFRAG_IPV6=m
943CONFIG_NF_CONNTRACK_IPV6=m 973CONFIG_NF_CONNTRACK_IPV6=m
944CONFIG_IP6_NF_QUEUE=m
945CONFIG_IP6_NF_IPTABLES=m 974CONFIG_IP6_NF_IPTABLES=m
946CONFIG_IP6_NF_MATCH_AH=m 975CONFIG_IP6_NF_MATCH_AH=m
947CONFIG_IP6_NF_MATCH_EUI64=m 976CONFIG_IP6_NF_MATCH_EUI64=m
@@ -958,6 +987,7 @@ CONFIG_IP6_NF_TARGET_REJECT=m
958CONFIG_IP6_NF_MANGLE=m 987CONFIG_IP6_NF_MANGLE=m
959CONFIG_IP6_NF_RAW=m 988CONFIG_IP6_NF_RAW=m
960CONFIG_IP6_NF_SECURITY=m 989CONFIG_IP6_NF_SECURITY=m
990# CONFIG_NF_NAT_IPV6 is not set
961 991
962# 992#
963# DECnet: Netfilter Configuration 993# DECnet: Netfilter Configuration
@@ -989,7 +1019,7 @@ CONFIG_IP_DCCP=m
989CONFIG_INET_DCCP_DIAG=m 1019CONFIG_INET_DCCP_DIAG=m
990 1020
991# 1021#
992# DCCP CCIDs Configuration (EXPERIMENTAL) 1022# DCCP CCIDs Configuration
993# 1023#
994# CONFIG_IP_DCCP_CCID2_DEBUG is not set 1024# CONFIG_IP_DCCP_CCID2_DEBUG is not set
995CONFIG_IP_DCCP_CCID3=y 1025CONFIG_IP_DCCP_CCID3=y
@@ -1005,16 +1035,18 @@ CONFIG_IP_SCTP=m
1005CONFIG_NET_SCTPPROBE=m 1035CONFIG_NET_SCTPPROBE=m
1006# CONFIG_SCTP_DBG_MSG is not set 1036# CONFIG_SCTP_DBG_MSG is not set
1007# CONFIG_SCTP_DBG_OBJCNT is not set 1037# CONFIG_SCTP_DBG_OBJCNT is not set
1008# CONFIG_SCTP_HMAC_NONE is not set 1038CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
1009CONFIG_SCTP_HMAC_SHA1=y 1039# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
1010# CONFIG_SCTP_HMAC_MD5 is not set 1040# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
1041CONFIG_SCTP_COOKIE_HMAC_MD5=y
1042CONFIG_SCTP_COOKIE_HMAC_SHA1=y
1011CONFIG_RDS=m 1043CONFIG_RDS=m
1012# CONFIG_RDS_RDMA is not set 1044# CONFIG_RDS_RDMA is not set
1013# CONFIG_RDS_TCP is not set 1045# CONFIG_RDS_TCP is not set
1014# CONFIG_RDS_DEBUG is not set 1046# CONFIG_RDS_DEBUG is not set
1015CONFIG_TIPC=m 1047CONFIG_TIPC=m
1016# CONFIG_TIPC_ADVANCED is not set 1048CONFIG_TIPC_PORTS=8191
1017# CONFIG_TIPC_DEBUG is not set 1049# CONFIG_TIPC_MEDIA_IB is not set
1018CONFIG_ATM=m 1050CONFIG_ATM=m
1019CONFIG_ATM_CLIP=m 1051CONFIG_ATM_CLIP=m
1020# CONFIG_ATM_CLIP_NO_ICMP is not set 1052# CONFIG_ATM_CLIP_NO_ICMP is not set
@@ -1028,11 +1060,14 @@ CONFIG_L2TP_V3=y
1028CONFIG_L2TP_IP=m 1060CONFIG_L2TP_IP=m
1029CONFIG_L2TP_ETH=m 1061CONFIG_L2TP_ETH=m
1030CONFIG_STP=m 1062CONFIG_STP=m
1063CONFIG_MRP=m
1031CONFIG_BRIDGE=m 1064CONFIG_BRIDGE=m
1032CONFIG_BRIDGE_IGMP_SNOOPING=y 1065CONFIG_BRIDGE_IGMP_SNOOPING=y
1033# CONFIG_NET_DSA is not set 1066CONFIG_BRIDGE_VLAN_FILTERING=y
1067CONFIG_HAVE_NET_DSA=y
1034CONFIG_VLAN_8021Q=m 1068CONFIG_VLAN_8021Q=m
1035# CONFIG_VLAN_8021Q_GVRP is not set 1069# CONFIG_VLAN_8021Q_GVRP is not set
1070CONFIG_VLAN_8021Q_MVRP=y
1036CONFIG_DECNET=m 1071CONFIG_DECNET=m
1037CONFIG_DECNET_ROUTER=y 1072CONFIG_DECNET_ROUTER=y
1038CONFIG_LLC=m 1073CONFIG_LLC=m
@@ -1043,14 +1078,12 @@ CONFIG_ATALK=m
1043CONFIG_DEV_APPLETALK=m 1078CONFIG_DEV_APPLETALK=m
1044CONFIG_IPDDP=m 1079CONFIG_IPDDP=m
1045CONFIG_IPDDP_ENCAP=y 1080CONFIG_IPDDP_ENCAP=y
1046CONFIG_IPDDP_DECAP=y
1047CONFIG_X25=m 1081CONFIG_X25=m
1048CONFIG_LAPB=m 1082CONFIG_LAPB=m
1049# CONFIG_ECONET is not set
1050CONFIG_WAN_ROUTER=m
1051# CONFIG_PHONET is not set 1083# CONFIG_PHONET is not set
1052CONFIG_IEEE802154=m 1084CONFIG_IEEE802154=m
1053CONFIG_IEEE802154_6LOWPAN=m 1085CONFIG_IEEE802154_6LOWPAN=m
1086CONFIG_MAC802154=m
1054CONFIG_NET_SCHED=y 1087CONFIG_NET_SCHED=y
1055 1088
1056# 1089#
@@ -1074,6 +1107,8 @@ CONFIG_NET_SCH_DRR=m
1074CONFIG_NET_SCH_MQPRIO=m 1107CONFIG_NET_SCH_MQPRIO=m
1075CONFIG_NET_SCH_CHOKE=m 1108CONFIG_NET_SCH_CHOKE=m
1076CONFIG_NET_SCH_QFQ=m 1109CONFIG_NET_SCH_QFQ=m
1110# CONFIG_NET_SCH_CODEL is not set
1111# CONFIG_NET_SCH_FQ_CODEL is not set
1077CONFIG_NET_SCH_INGRESS=m 1112CONFIG_NET_SCH_INGRESS=m
1078CONFIG_NET_SCH_PLUG=m 1113CONFIG_NET_SCH_PLUG=m
1079 1114
@@ -1099,6 +1134,7 @@ CONFIG_NET_EMATCH_NBYTE=m
1099CONFIG_NET_EMATCH_U32=m 1134CONFIG_NET_EMATCH_U32=m
1100CONFIG_NET_EMATCH_META=m 1135CONFIG_NET_EMATCH_META=m
1101CONFIG_NET_EMATCH_TEXT=m 1136CONFIG_NET_EMATCH_TEXT=m
1137CONFIG_NET_EMATCH_IPSET=m
1102CONFIG_NET_CLS_ACT=y 1138CONFIG_NET_CLS_ACT=y
1103CONFIG_NET_ACT_POLICE=m 1139CONFIG_NET_ACT_POLICE=m
1104CONFIG_NET_ACT_GACT=m 1140CONFIG_NET_ACT_GACT=m
@@ -1116,6 +1152,10 @@ CONFIG_NET_SCH_FIFO=y
1116CONFIG_DNS_RESOLVER=y 1152CONFIG_DNS_RESOLVER=y
1117# CONFIG_BATMAN_ADV is not set 1153# CONFIG_BATMAN_ADV is not set
1118CONFIG_OPENVSWITCH=m 1154CONFIG_OPENVSWITCH=m
1155CONFIG_VSOCKETS=m
1156CONFIG_VMWARE_VMCI_VSOCKETS=m
1157CONFIG_NETLINK_MMAP=y
1158CONFIG_NETLINK_DIAG=m
1119CONFIG_RPS=y 1159CONFIG_RPS=y
1120CONFIG_RFS_ACCEL=y 1160CONFIG_RFS_ACCEL=y
1121CONFIG_XPS=y 1161CONFIG_XPS=y
@@ -1204,6 +1244,7 @@ CONFIG_BT_HCIUART_H4=y
1204CONFIG_BT_HCIUART_BCSP=y 1244CONFIG_BT_HCIUART_BCSP=y
1205CONFIG_BT_HCIUART_ATH3K=y 1245CONFIG_BT_HCIUART_ATH3K=y
1206CONFIG_BT_HCIUART_LL=y 1246CONFIG_BT_HCIUART_LL=y
1247# CONFIG_BT_HCIUART_3WIRE is not set
1207CONFIG_BT_HCIBCM203X=m 1248CONFIG_BT_HCIBCM203X=m
1208CONFIG_BT_HCIBPA10X=m 1249CONFIG_BT_HCIBPA10X=m
1209CONFIG_BT_HCIBFUSB=m 1250CONFIG_BT_HCIBFUSB=m
@@ -1226,11 +1267,11 @@ CONFIG_CFG80211=m
1226# CONFIG_NL80211_TESTMODE is not set 1267# CONFIG_NL80211_TESTMODE is not set
1227# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set 1268# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
1228# CONFIG_CFG80211_REG_DEBUG is not set 1269# CONFIG_CFG80211_REG_DEBUG is not set
1270# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
1229CONFIG_CFG80211_DEFAULT_PS=y 1271CONFIG_CFG80211_DEFAULT_PS=y
1230# CONFIG_CFG80211_DEBUGFS is not set 1272# CONFIG_CFG80211_DEBUGFS is not set
1231# CONFIG_CFG80211_INTERNAL_REGDB is not set 1273# CONFIG_CFG80211_INTERNAL_REGDB is not set
1232CONFIG_CFG80211_WEXT=y 1274CONFIG_CFG80211_WEXT=y
1233CONFIG_WIRELESS_EXT_SYSFS=y
1234CONFIG_LIB80211=m 1275CONFIG_LIB80211=m
1235CONFIG_LIB80211_CRYPT_WEP=m 1276CONFIG_LIB80211_CRYPT_WEP=m
1236CONFIG_LIB80211_CRYPT_CCMP=m 1277CONFIG_LIB80211_CRYPT_CCMP=m
@@ -1247,6 +1288,7 @@ CONFIG_MAC80211_RC_DEFAULT="pid"
1247# CONFIG_MAC80211_MESH is not set 1288# CONFIG_MAC80211_MESH is not set
1248CONFIG_MAC80211_LEDS=y 1289CONFIG_MAC80211_LEDS=y
1249# CONFIG_MAC80211_DEBUGFS is not set 1290# CONFIG_MAC80211_DEBUGFS is not set
1291# CONFIG_MAC80211_MESSAGE_TRACING is not set
1250# CONFIG_MAC80211_DEBUG_MENU is not set 1292# CONFIG_MAC80211_DEBUG_MENU is not set
1251CONFIG_WIMAX=m 1293CONFIG_WIMAX=m
1252CONFIG_WIMAX_DEBUG_LEVEL=8 1294CONFIG_WIMAX_DEBUG_LEVEL=8
@@ -1278,6 +1320,7 @@ CONFIG_STANDALONE=y
1278CONFIG_FW_LOADER=m 1320CONFIG_FW_LOADER=m
1279# CONFIG_FIRMWARE_IN_KERNEL is not set 1321# CONFIG_FIRMWARE_IN_KERNEL is not set
1280CONFIG_EXTRA_FIRMWARE="" 1322CONFIG_EXTRA_FIRMWARE=""
1323CONFIG_FW_LOADER_USER_HELPER=y
1281# CONFIG_DEBUG_DRIVER is not set 1324# CONFIG_DEBUG_DRIVER is not set
1282CONFIG_DEBUG_DEVRES=y 1325CONFIG_DEBUG_DEVRES=y
1283# CONFIG_SYS_HYPERVISOR is not set 1326# CONFIG_SYS_HYPERVISOR is not set
@@ -1285,7 +1328,13 @@ CONFIG_DEBUG_DEVRES=y
1285CONFIG_REGMAP=y 1328CONFIG_REGMAP=y
1286CONFIG_REGMAP_I2C=m 1329CONFIG_REGMAP_I2C=m
1287CONFIG_REGMAP_SPI=m 1330CONFIG_REGMAP_SPI=m
1331CONFIG_REGMAP_MMIO=m
1288CONFIG_DMA_SHARED_BUFFER=y 1332CONFIG_DMA_SHARED_BUFFER=y
1333# CONFIG_CMA is not set
1334
1335#
1336# Bus devices
1337#
1289CONFIG_CONNECTOR=m 1338CONFIG_CONNECTOR=m
1290CONFIG_MTD=m 1339CONFIG_MTD=m
1291CONFIG_MTD_TESTS=m 1340CONFIG_MTD_TESTS=m
@@ -1293,13 +1342,12 @@ CONFIG_MTD_REDBOOT_PARTS=m
1293CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 1342CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
1294# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set 1343# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
1295# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set 1344# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
1345# CONFIG_MTD_CMDLINE_PARTS is not set
1296CONFIG_MTD_AR7_PARTS=m 1346CONFIG_MTD_AR7_PARTS=m
1297 1347
1298# 1348#
1299# User Modules And Translation Layers 1349# User Modules And Translation Layers
1300# 1350#
1301CONFIG_MTD_CHAR=m
1302CONFIG_HAVE_MTD_OTP=y
1303CONFIG_MTD_BLKDEVS=m 1351CONFIG_MTD_BLKDEVS=m
1304CONFIG_MTD_BLOCK=m 1352CONFIG_MTD_BLOCK=m
1305CONFIG_MTD_BLOCK_RO=m 1353CONFIG_MTD_BLOCK_RO=m
@@ -1383,25 +1431,14 @@ CONFIG_MTD_BLOCK2MTD=m
1383# 1431#
1384# Disk-On-Chip Device Drivers 1432# Disk-On-Chip Device Drivers
1385# 1433#
1386CONFIG_MTD_DOC2000=m
1387CONFIG_MTD_DOC2001=m
1388CONFIG_MTD_DOC2001PLUS=m
1389# CONFIG_MTD_DOCG3 is not set 1434# CONFIG_MTD_DOCG3 is not set
1390CONFIG_MTD_DOCPROBE=m
1391CONFIG_MTD_DOCECC=m
1392CONFIG_MTD_DOCPROBE_ADVANCED=y
1393CONFIG_MTD_DOCPROBE_ADDRESS=0x0000
1394# CONFIG_MTD_DOCPROBE_HIGH is not set
1395# CONFIG_MTD_DOCPROBE_55AA is not set
1396CONFIG_MTD_NAND_ECC=m 1435CONFIG_MTD_NAND_ECC=m
1397CONFIG_MTD_NAND_ECC_SMC=y 1436CONFIG_MTD_NAND_ECC_SMC=y
1398CONFIG_MTD_NAND=m 1437CONFIG_MTD_NAND=m
1399# CONFIG_MTD_NAND_VERIFY_WRITE is not set
1400# CONFIG_MTD_NAND_ECC_BCH is not set 1438# CONFIG_MTD_NAND_ECC_BCH is not set
1401CONFIG_MTD_SM_COMMON=m 1439CONFIG_MTD_SM_COMMON=m
1402# CONFIG_MTD_NAND_MUSEUM_IDS is not set
1403CONFIG_MTD_NAND_DENALI=m 1440CONFIG_MTD_NAND_DENALI=m
1404CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018 1441# CONFIG_MTD_NAND_DENALI_PCI is not set
1405CONFIG_MTD_NAND_IDS=m 1442CONFIG_MTD_NAND_IDS=m
1406CONFIG_MTD_NAND_RICOH=m 1443CONFIG_MTD_NAND_RICOH=m
1407CONFIG_MTD_NAND_DISKONCHIP=m 1444CONFIG_MTD_NAND_DISKONCHIP=m
@@ -1419,7 +1456,6 @@ CONFIG_MTD_ONENAND=m
1419# CONFIG_MTD_ONENAND_GENERIC is not set 1456# CONFIG_MTD_ONENAND_GENERIC is not set
1420CONFIG_MTD_ONENAND_OTP=y 1457CONFIG_MTD_ONENAND_OTP=y
1421CONFIG_MTD_ONENAND_2X_PROGRAM=y 1458CONFIG_MTD_ONENAND_2X_PROGRAM=y
1422CONFIG_MTD_ONENAND_SIM=m
1423 1459
1424# 1460#
1425# LPDDR flash memory drivers 1461# LPDDR flash memory drivers
@@ -1428,9 +1464,9 @@ CONFIG_MTD_LPDDR=m
1428CONFIG_MTD_QINFO_PROBE=m 1464CONFIG_MTD_QINFO_PROBE=m
1429CONFIG_MTD_UBI=m 1465CONFIG_MTD_UBI=m
1430CONFIG_MTD_UBI_WL_THRESHOLD=4096 1466CONFIG_MTD_UBI_WL_THRESHOLD=4096
1431CONFIG_MTD_UBI_BEB_RESERVE=1 1467CONFIG_MTD_UBI_BEB_LIMIT=20
1468# CONFIG_MTD_UBI_FASTMAP is not set
1432# CONFIG_MTD_UBI_GLUEBI is not set 1469# CONFIG_MTD_UBI_GLUEBI is not set
1433# CONFIG_MTD_UBI_DEBUG is not set
1434CONFIG_PARPORT=m 1470CONFIG_PARPORT=m
1435CONFIG_PARPORT_PC=m 1471CONFIG_PARPORT_PC=m
1436CONFIG_PARPORT_SERIAL=m 1472CONFIG_PARPORT_SERIAL=m
@@ -1467,7 +1503,6 @@ CONFIG_BLK_DEV_NBD=m
1467CONFIG_BLK_DEV_NVME=m 1503CONFIG_BLK_DEV_NVME=m
1468CONFIG_BLK_DEV_OSD=m 1504CONFIG_BLK_DEV_OSD=m
1469CONFIG_BLK_DEV_SX8=m 1505CONFIG_BLK_DEV_SX8=m
1470CONFIG_BLK_DEV_UB=m
1471CONFIG_BLK_DEV_RAM=y 1506CONFIG_BLK_DEV_RAM=y
1472CONFIG_BLK_DEV_RAM_COUNT=16 1507CONFIG_BLK_DEV_RAM_COUNT=16
1473CONFIG_BLK_DEV_RAM_SIZE=4096 1508CONFIG_BLK_DEV_RAM_SIZE=4096
@@ -1479,6 +1514,7 @@ CONFIG_ATA_OVER_ETH=m
1479CONFIG_VIRTIO_BLK=m 1514CONFIG_VIRTIO_BLK=m
1480# CONFIG_BLK_DEV_HD is not set 1515# CONFIG_BLK_DEV_HD is not set
1481# CONFIG_BLK_DEV_RBD is not set 1516# CONFIG_BLK_DEV_RBD is not set
1517CONFIG_BLK_DEV_RSXX=m
1482 1518
1483# 1519#
1484# Misc devices 1520# Misc devices
@@ -1487,6 +1523,7 @@ CONFIG_SENSORS_LIS3LV02D=m
1487CONFIG_AD525X_DPOT=m 1523CONFIG_AD525X_DPOT=m
1488CONFIG_AD525X_DPOT_I2C=m 1524CONFIG_AD525X_DPOT_I2C=m
1489CONFIG_AD525X_DPOT_SPI=m 1525CONFIG_AD525X_DPOT_SPI=m
1526# CONFIG_DUMMY_IRQ is not set
1490CONFIG_IBM_ASM=m 1527CONFIG_IBM_ASM=m
1491CONFIG_PHANTOM=m 1528CONFIG_PHANTOM=m
1492# CONFIG_INTEL_MID_PTI is not set 1529# CONFIG_INTEL_MID_PTI is not set
@@ -1494,6 +1531,7 @@ CONFIG_SGI_IOC4=m
1494CONFIG_TIFM_CORE=m 1531CONFIG_TIFM_CORE=m
1495CONFIG_TIFM_7XX1=m 1532CONFIG_TIFM_7XX1=m
1496CONFIG_ICS932S401=m 1533CONFIG_ICS932S401=m
1534# CONFIG_ATMEL_SSC is not set
1497CONFIG_ENCLOSURE_SERVICES=m 1535CONFIG_ENCLOSURE_SERVICES=m
1498CONFIG_CS5535_MFGPT=m 1536CONFIG_CS5535_MFGPT=m
1499CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7 1537CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
@@ -1510,9 +1548,12 @@ CONFIG_HMC6352=m
1510CONFIG_DS1682=m 1548CONFIG_DS1682=m
1511CONFIG_TI_DAC7512=m 1549CONFIG_TI_DAC7512=m
1512CONFIG_VMWARE_BALLOON=m 1550CONFIG_VMWARE_BALLOON=m
1513CONFIG_BMP085=m 1551# CONFIG_BMP085_I2C is not set
1552# CONFIG_BMP085_SPI is not set
1514CONFIG_PCH_PHUB=m 1553CONFIG_PCH_PHUB=m
1515# CONFIG_USB_SWITCH_FSA9480 is not set 1554# CONFIG_USB_SWITCH_FSA9480 is not set
1555# CONFIG_LATTICE_ECP3_CONFIG is not set
1556# CONFIG_SRAM is not set
1516CONFIG_C2PORT=m 1557CONFIG_C2PORT=m
1517CONFIG_C2PORT_DURAMAR_2150=m 1558CONFIG_C2PORT_DURAMAR_2150=m
1518 1559
@@ -1528,9 +1569,6 @@ CONFIG_EEPROM_93XX46=m
1528CONFIG_CB710_CORE=m 1569CONFIG_CB710_CORE=m
1529# CONFIG_CB710_DEBUG is not set 1570# CONFIG_CB710_DEBUG is not set
1530CONFIG_CB710_DEBUG_ASSUMPTIONS=y 1571CONFIG_CB710_DEBUG_ASSUMPTIONS=y
1531CONFIG_IWMC3200TOP=m
1532# CONFIG_IWMC3200TOP_DEBUG is not set
1533# CONFIG_IWMC3200TOP_DEBUGFS is not set
1534 1572
1535# 1573#
1536# Texas Instruments shared transport line discipline 1574# Texas Instruments shared transport line discipline
@@ -1542,6 +1580,9 @@ CONFIG_SENSORS_LIS3_I2C=m
1542# Altera FPGA firmware download module 1580# Altera FPGA firmware download module
1543# 1581#
1544# CONFIG_ALTERA_STAPL is not set 1582# CONFIG_ALTERA_STAPL is not set
1583# CONFIG_INTEL_MEI is not set
1584# CONFIG_INTEL_MEI_ME is not set
1585CONFIG_VMWARE_VMCI=m
1545CONFIG_HAVE_IDE=y 1586CONFIG_HAVE_IDE=y
1546# CONFIG_IDE is not set 1587# CONFIG_IDE is not set
1547 1588
@@ -1571,7 +1612,6 @@ CONFIG_SCSI_MULTI_LUN=y
1571# CONFIG_SCSI_CONSTANTS is not set 1612# CONFIG_SCSI_CONSTANTS is not set
1572# CONFIG_SCSI_LOGGING is not set 1613# CONFIG_SCSI_LOGGING is not set
1573CONFIG_SCSI_SCAN_ASYNC=y 1614CONFIG_SCSI_SCAN_ASYNC=y
1574CONFIG_SCSI_WAIT_SCAN=m
1575 1615
1576# 1616#
1577# SCSI Transports 1617# SCSI Transports
@@ -1632,7 +1672,12 @@ CONFIG_MEGARAID_SAS=m
1632CONFIG_SCSI_MPT2SAS=m 1672CONFIG_SCSI_MPT2SAS=m
1633CONFIG_SCSI_MPT2SAS_MAX_SGE=128 1673CONFIG_SCSI_MPT2SAS_MAX_SGE=128
1634# CONFIG_SCSI_MPT2SAS_LOGGING is not set 1674# CONFIG_SCSI_MPT2SAS_LOGGING is not set
1675CONFIG_SCSI_MPT3SAS=m
1676CONFIG_SCSI_MPT3SAS_MAX_SGE=128
1677# CONFIG_SCSI_MPT3SAS_LOGGING is not set
1635CONFIG_SCSI_UFSHCD=m 1678CONFIG_SCSI_UFSHCD=m
1679CONFIG_SCSI_UFSHCD_PCI=m
1680CONFIG_SCSI_UFSHCD_PLATFORM=m
1636CONFIG_SCSI_HPTIOP=m 1681CONFIG_SCSI_HPTIOP=m
1637CONFIG_SCSI_BUSLOGIC=m 1682CONFIG_SCSI_BUSLOGIC=m
1638# CONFIG_SCSI_FLASHPOINT is not set 1683# CONFIG_SCSI_FLASHPOINT is not set
@@ -1666,6 +1711,7 @@ CONFIG_SCSI_IPR_TRACE=y
1666# CONFIG_SCSI_IPR_DUMP is not set 1711# CONFIG_SCSI_IPR_DUMP is not set
1667CONFIG_SCSI_QLOGIC_1280=m 1712CONFIG_SCSI_QLOGIC_1280=m
1668CONFIG_SCSI_QLA_FC=m 1713CONFIG_SCSI_QLA_FC=m
1714CONFIG_TCM_QLA2XXX=m
1669CONFIG_SCSI_QLA_ISCSI=m 1715CONFIG_SCSI_QLA_ISCSI=m
1670CONFIG_SCSI_LPFC=m 1716CONFIG_SCSI_LPFC=m
1671# CONFIG_SCSI_LPFC_DEBUG_FS is not set 1717# CONFIG_SCSI_LPFC_DEBUG_FS is not set
@@ -1678,6 +1724,7 @@ CONFIG_SCSI_PM8001=m
1678CONFIG_SCSI_SRP=m 1724CONFIG_SCSI_SRP=m
1679# CONFIG_SCSI_BFA_FC is not set 1725# CONFIG_SCSI_BFA_FC is not set
1680CONFIG_SCSI_VIRTIO=m 1726CONFIG_SCSI_VIRTIO=m
1727# CONFIG_SCSI_CHELSIO_FCOE is not set
1681CONFIG_SCSI_DH=m 1728CONFIG_SCSI_DH=m
1682CONFIG_SCSI_DH_RDAC=m 1729CONFIG_SCSI_DH_RDAC=m
1683CONFIG_SCSI_DH_HP_SW=m 1730CONFIG_SCSI_DH_HP_SW=m
@@ -1691,6 +1738,7 @@ CONFIG_ATA=m
1691# CONFIG_ATA_NONSTANDARD is not set 1738# CONFIG_ATA_NONSTANDARD is not set
1692CONFIG_ATA_VERBOSE_ERROR=y 1739CONFIG_ATA_VERBOSE_ERROR=y
1693CONFIG_ATA_ACPI=y 1740CONFIG_ATA_ACPI=y
1741# CONFIG_SATA_ZPODD is not set
1694CONFIG_SATA_PMP=y 1742CONFIG_SATA_PMP=y
1695 1743
1696# 1744#
@@ -1715,6 +1763,7 @@ CONFIG_ATA_BMDMA=y
1715# SATA SFF controllers with BMDMA 1763# SATA SFF controllers with BMDMA
1716# 1764#
1717CONFIG_ATA_PIIX=m 1765CONFIG_ATA_PIIX=m
1766CONFIG_SATA_HIGHBANK=m
1718CONFIG_SATA_MV=m 1767CONFIG_SATA_MV=m
1719CONFIG_SATA_NV=m 1768CONFIG_SATA_NV=m
1720CONFIG_SATA_PROMISE=m 1769CONFIG_SATA_PROMISE=m
@@ -1793,18 +1842,24 @@ CONFIG_MD_RAID0=m
1793CONFIG_MD_RAID1=m 1842CONFIG_MD_RAID1=m
1794CONFIG_MD_RAID10=m 1843CONFIG_MD_RAID10=m
1795CONFIG_MD_RAID456=m 1844CONFIG_MD_RAID456=m
1796# CONFIG_MULTICORE_RAID456 is not set
1797CONFIG_MD_MULTIPATH=m 1845CONFIG_MD_MULTIPATH=m
1798CONFIG_MD_FAULTY=m 1846CONFIG_MD_FAULTY=m
1847CONFIG_BCACHE=m
1848# CONFIG_BCACHE_DEBUG is not set
1849# CONFIG_BCACHE_EDEBUG is not set
1850# CONFIG_BCACHE_CLOSURES_DEBUG is not set
1799CONFIG_BLK_DEV_DM=m 1851CONFIG_BLK_DEV_DM=m
1800# CONFIG_DM_DEBUG is not set 1852# CONFIG_DM_DEBUG is not set
1801CONFIG_DM_BUFIO=m 1853CONFIG_DM_BUFIO=m
1854CONFIG_DM_BIO_PRISON=m
1802CONFIG_DM_PERSISTENT_DATA=m 1855CONFIG_DM_PERSISTENT_DATA=m
1803CONFIG_DM_CRYPT=m 1856CONFIG_DM_CRYPT=m
1804CONFIG_DM_SNAPSHOT=m 1857CONFIG_DM_SNAPSHOT=m
1805CONFIG_DM_THIN_PROVISIONING=m 1858CONFIG_DM_THIN_PROVISIONING=m
1806# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set 1859# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
1807# CONFIG_DM_DEBUG_SPACE_MAPS is not set 1860CONFIG_DM_CACHE=m
1861CONFIG_DM_CACHE_MQ=m
1862CONFIG_DM_CACHE_CLEANER=m
1808CONFIG_DM_MIRROR=m 1863CONFIG_DM_MIRROR=m
1809CONFIG_DM_RAID=m 1864CONFIG_DM_RAID=m
1810CONFIG_DM_LOG_USERSPACE=m 1865CONFIG_DM_LOG_USERSPACE=m
@@ -1823,6 +1878,7 @@ CONFIG_TCM_PSCSI=m
1823CONFIG_LOOPBACK_TARGET=m 1878CONFIG_LOOPBACK_TARGET=m
1824CONFIG_TCM_FC=m 1879CONFIG_TCM_FC=m
1825CONFIG_ISCSI_TARGET=m 1880CONFIG_ISCSI_TARGET=m
1881CONFIG_SBP_TARGET=m
1826CONFIG_FUSION=y 1882CONFIG_FUSION=y
1827CONFIG_FUSION_SPI=m 1883CONFIG_FUSION_SPI=m
1828CONFIG_FUSION_FC=m 1884CONFIG_FUSION_FC=m
@@ -1856,14 +1912,16 @@ CONFIG_DUMMY=m
1856CONFIG_EQUALIZER=m 1912CONFIG_EQUALIZER=m
1857# CONFIG_NET_FC is not set 1913# CONFIG_NET_FC is not set
1858CONFIG_MII=m 1914CONFIG_MII=m
1859CONFIG_IEEE802154_DRIVERS=m
1860CONFIG_IEEE802154_FAKEHARD=m
1861CONFIG_IFB=m 1915CONFIG_IFB=m
1862CONFIG_NET_TEAM=m 1916CONFIG_NET_TEAM=m
1917CONFIG_NET_TEAM_MODE_BROADCAST=m
1863CONFIG_NET_TEAM_MODE_ROUNDROBIN=m 1918CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
1919CONFIG_NET_TEAM_MODE_RANDOM=m
1864CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 1920CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
1921CONFIG_NET_TEAM_MODE_LOADBALANCE=m
1865CONFIG_MACVLAN=m 1922CONFIG_MACVLAN=m
1866CONFIG_MACVTAP=m 1923CONFIG_MACVTAP=m
1924CONFIG_VXLAN=m
1867CONFIG_NETCONSOLE=m 1925CONFIG_NETCONSOLE=m
1868CONFIG_NETCONSOLE_DYNAMIC=y 1926CONFIG_NETCONSOLE_DYNAMIC=y
1869CONFIG_NETPOLL=y 1927CONFIG_NETPOLL=y
@@ -1917,6 +1975,18 @@ CONFIG_ATM_SOLOS=m
1917# 1975#
1918# CAIF transport drivers 1976# CAIF transport drivers
1919# 1977#
1978CONFIG_VHOST_NET=m
1979CONFIG_VHOST_SCSI=m
1980CONFIG_VHOST_RING=m
1981
1982#
1983# Distributed Switch Architecture drivers
1984#
1985# CONFIG_NET_DSA_MV88E6XXX is not set
1986# CONFIG_NET_DSA_MV88E6060 is not set
1987# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
1988# CONFIG_NET_DSA_MV88E6131 is not set
1989# CONFIG_NET_DSA_MV88E6123_61_65 is not set
1920CONFIG_ETHERNET=y 1990CONFIG_ETHERNET=y
1921CONFIG_MDIO=m 1991CONFIG_MDIO=m
1922CONFIG_NET_VENDOR_3COM=y 1992CONFIG_NET_VENDOR_3COM=y
@@ -1935,6 +2005,10 @@ CONFIG_ATL2=m
1935CONFIG_ATL1=m 2005CONFIG_ATL1=m
1936CONFIG_ATL1E=m 2006CONFIG_ATL1E=m
1937CONFIG_ATL1C=m 2007CONFIG_ATL1C=m
2008CONFIG_ALX=m
2009CONFIG_NET_CADENCE=y
2010CONFIG_ARM_AT91_ETHER=m
2011CONFIG_MACB=m
1938CONFIG_NET_VENDOR_BROADCOM=y 2012CONFIG_NET_VENDOR_BROADCOM=y
1939CONFIG_B44=m 2013CONFIG_B44=m
1940CONFIG_B44_PCI_AUTOSELECT=y 2014CONFIG_B44_PCI_AUTOSELECT=y
@@ -1969,8 +2043,6 @@ CONFIG_WINBOND_840=m
1969CONFIG_DM9102=m 2043CONFIG_DM9102=m
1970CONFIG_ULI526X=m 2044CONFIG_ULI526X=m
1971CONFIG_NET_VENDOR_DLINK=y 2045CONFIG_NET_VENDOR_DLINK=y
1972CONFIG_DE600=m
1973CONFIG_DE620=m
1974CONFIG_DL2K=m 2046CONFIG_DL2K=m
1975CONFIG_SUNDANCE=m 2047CONFIG_SUNDANCE=m
1976# CONFIG_SUNDANCE_MMIO is not set 2048# CONFIG_SUNDANCE_MMIO is not set
@@ -1987,17 +2059,19 @@ CONFIG_E100=m
1987CONFIG_E1000=m 2059CONFIG_E1000=m
1988CONFIG_E1000E=m 2060CONFIG_E1000E=m
1989CONFIG_IGB=m 2061CONFIG_IGB=m
2062CONFIG_IGB_HWMON=y
1990CONFIG_IGB_DCA=y 2063CONFIG_IGB_DCA=y
1991CONFIG_IGBVF=m 2064CONFIG_IGBVF=m
1992CONFIG_IXGB=m 2065CONFIG_IXGB=m
1993CONFIG_IXGBE=m 2066CONFIG_IXGBE=m
2067CONFIG_IXGBE_HWMON=y
1994CONFIG_IXGBE_DCA=y 2068CONFIG_IXGBE_DCA=y
1995# CONFIG_IXGBEVF is not set 2069# CONFIG_IXGBEVF is not set
1996CONFIG_NET_VENDOR_I825XX=y 2070CONFIG_NET_VENDOR_I825XX=y
1997# CONFIG_ZNET is not set
1998CONFIG_IP1000=m 2071CONFIG_IP1000=m
1999CONFIG_JME=m 2072CONFIG_JME=m
2000CONFIG_NET_VENDOR_MARVELL=y 2073CONFIG_NET_VENDOR_MARVELL=y
2074# CONFIG_MVMDIO is not set
2001CONFIG_SKGE=m 2075CONFIG_SKGE=m
2002# CONFIG_SKGE_DEBUG is not set 2076# CONFIG_SKGE_DEBUG is not set
2003CONFIG_SKGE_GENESIS=y 2077CONFIG_SKGE_GENESIS=y
@@ -2049,7 +2123,6 @@ CONFIG_R8169=m
2049CONFIG_NET_VENDOR_RDC=y 2123CONFIG_NET_VENDOR_RDC=y
2050CONFIG_R6040=m 2124CONFIG_R6040=m
2051CONFIG_NET_VENDOR_SEEQ=y 2125CONFIG_NET_VENDOR_SEEQ=y
2052CONFIG_SEEQ8005=m
2053CONFIG_NET_VENDOR_SILAN=y 2126CONFIG_NET_VENDOR_SILAN=y
2054CONFIG_SC92031=m 2127CONFIG_SC92031=m
2055CONFIG_NET_VENDOR_SIS=y 2128CONFIG_NET_VENDOR_SIS=y
@@ -2067,8 +2140,6 @@ CONFIG_STMMAC_ETH=m
2067# CONFIG_STMMAC_PCI is not set 2140# CONFIG_STMMAC_PCI is not set
2068# CONFIG_STMMAC_DEBUG_FS is not set 2141# CONFIG_STMMAC_DEBUG_FS is not set
2069# CONFIG_STMMAC_DA is not set 2142# CONFIG_STMMAC_DA is not set
2070CONFIG_STMMAC_RING=y
2071# CONFIG_STMMAC_CHAINED is not set
2072CONFIG_NET_VENDOR_SUN=y 2143CONFIG_NET_VENDOR_SUN=y
2073CONFIG_HAPPYMEAL=m 2144CONFIG_HAPPYMEAL=m
2074CONFIG_SUNGEM=m 2145CONFIG_SUNGEM=m
@@ -2082,6 +2153,9 @@ CONFIG_NET_VENDOR_VIA=y
2082CONFIG_VIA_RHINE=m 2153CONFIG_VIA_RHINE=m
2083# CONFIG_VIA_RHINE_MMIO is not set 2154# CONFIG_VIA_RHINE_MMIO is not set
2084CONFIG_VIA_VELOCITY=m 2155CONFIG_VIA_VELOCITY=m
2156CONFIG_NET_VENDOR_WIZNET=y
2157# CONFIG_WIZNET_W5100 is not set
2158# CONFIG_WIZNET_W5300 is not set
2085CONFIG_FDDI=y 2159CONFIG_FDDI=y
2086CONFIG_DEFXX=m 2160CONFIG_DEFXX=m
2087# CONFIG_DEFXX_MMIO is not set 2161# CONFIG_DEFXX_MMIO is not set
@@ -2095,6 +2169,7 @@ CONFIG_PHYLIB=m
2095# 2169#
2096# MII PHY device drivers 2170# MII PHY device drivers
2097# 2171#
2172# CONFIG_AT803X_PHY is not set
2098CONFIG_AMD_PHY=m 2173CONFIG_AMD_PHY=m
2099CONFIG_MARVELL_PHY=m 2174CONFIG_MARVELL_PHY=m
2100CONFIG_DAVICOM_PHY=m 2175CONFIG_DAVICOM_PHY=m
@@ -2104,6 +2179,7 @@ CONFIG_CICADA_PHY=m
2104CONFIG_VITESSE_PHY=m 2179CONFIG_VITESSE_PHY=m
2105CONFIG_SMSC_PHY=m 2180CONFIG_SMSC_PHY=m
2106CONFIG_BROADCOM_PHY=m 2181CONFIG_BROADCOM_PHY=m
2182# CONFIG_BCM87XX_PHY is not set
2107CONFIG_ICPLUS_PHY=m 2183CONFIG_ICPLUS_PHY=m
2108CONFIG_REALTEK_PHY=m 2184CONFIG_REALTEK_PHY=m
2109CONFIG_NATIONAL_PHY=m 2185CONFIG_NATIONAL_PHY=m
@@ -2131,7 +2207,6 @@ CONFIG_SLHC=m
2131CONFIG_SLIP_COMPRESSED=y 2207CONFIG_SLIP_COMPRESSED=y
2132CONFIG_SLIP_SMART=y 2208CONFIG_SLIP_SMART=y
2133CONFIG_SLIP_MODE_SLIP6=y 2209CONFIG_SLIP_MODE_SLIP6=y
2134# CONFIG_TR is not set
2135 2210
2136# 2211#
2137# USB Network Adapters 2212# USB Network Adapters
@@ -2140,11 +2215,14 @@ CONFIG_USB_CATC=m
2140CONFIG_USB_KAWETH=m 2215CONFIG_USB_KAWETH=m
2141CONFIG_USB_PEGASUS=m 2216CONFIG_USB_PEGASUS=m
2142CONFIG_USB_RTL8150=m 2217CONFIG_USB_RTL8150=m
2218# CONFIG_USB_RTL8152 is not set
2143CONFIG_USB_USBNET=m 2219CONFIG_USB_USBNET=m
2144CONFIG_USB_NET_AX8817X=m 2220CONFIG_USB_NET_AX8817X=m
2221CONFIG_USB_NET_AX88179_178A=m
2145CONFIG_USB_NET_CDCETHER=m 2222CONFIG_USB_NET_CDCETHER=m
2146CONFIG_USB_NET_CDC_EEM=m 2223CONFIG_USB_NET_CDC_EEM=m
2147CONFIG_USB_NET_CDC_NCM=m 2224CONFIG_USB_NET_CDC_NCM=m
2225# CONFIG_USB_NET_CDC_MBIM is not set
2148CONFIG_USB_NET_DM9601=m 2226CONFIG_USB_NET_DM9601=m
2149CONFIG_USB_NET_SMSC75XX=m 2227CONFIG_USB_NET_SMSC75XX=m
2150CONFIG_USB_NET_SMSC95XX=m 2228CONFIG_USB_NET_SMSC95XX=m
@@ -2186,30 +2264,7 @@ CONFIG_RTL8187_LEDS=y
2186CONFIG_ADM8211=m 2264CONFIG_ADM8211=m
2187CONFIG_MAC80211_HWSIM=m 2265CONFIG_MAC80211_HWSIM=m
2188CONFIG_MWL8K=m 2266CONFIG_MWL8K=m
2189CONFIG_ATH_COMMON=m 2267# CONFIG_ATH_CARDS is not set
2190# CONFIG_ATH_DEBUG is not set
2191CONFIG_ATH5K=m
2192# CONFIG_ATH5K_DEBUG is not set
2193CONFIG_ATH5K_PCI=y
2194CONFIG_ATH9K_HW=m
2195CONFIG_ATH9K_COMMON=m
2196CONFIG_ATH9K_BTCOEX_SUPPORT=y
2197CONFIG_ATH9K=m
2198CONFIG_ATH9K_PCI=y
2199CONFIG_ATH9K_AHB=y
2200# CONFIG_ATH9K_DEBUGFS is not set
2201# CONFIG_ATH9K_DFS_CERTIFIED is not set
2202# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set
2203CONFIG_ATH9K_HTC=m
2204# CONFIG_ATH9K_HTC_DEBUGFS is not set
2205CONFIG_CARL9170=m
2206CONFIG_CARL9170_LEDS=y
2207CONFIG_CARL9170_WPC=y
2208CONFIG_CARL9170_HWRNG=y
2209CONFIG_ATH6KL=m
2210CONFIG_ATH6KL_SDIO=m
2211CONFIG_ATH6KL_USB=m
2212CONFIG_ATH6KL_DEBUG=y
2213CONFIG_B43=m 2268CONFIG_B43=m
2214CONFIG_B43_SSB=y 2269CONFIG_B43_SSB=y
2215CONFIG_B43_PCI_AUTOSELECT=y 2270CONFIG_B43_PCI_AUTOSELECT=y
@@ -2218,7 +2273,6 @@ CONFIG_B43_SDIO=y
2218CONFIG_B43_PIO=y 2273CONFIG_B43_PIO=y
2219CONFIG_B43_PHY_N=y 2274CONFIG_B43_PHY_N=y
2220CONFIG_B43_PHY_LP=y 2275CONFIG_B43_PHY_LP=y
2221CONFIG_B43_PHY_HT=y
2222CONFIG_B43_LEDS=y 2276CONFIG_B43_LEDS=y
2223CONFIG_B43_HWRNG=y 2277CONFIG_B43_HWRNG=y
2224# CONFIG_B43_DEBUG is not set 2278# CONFIG_B43_DEBUG is not set
@@ -2251,13 +2305,15 @@ CONFIG_IPW2200_QOS=y
2251CONFIG_LIBIPW=m 2305CONFIG_LIBIPW=m
2252# CONFIG_LIBIPW_DEBUG is not set 2306# CONFIG_LIBIPW_DEBUG is not set
2253CONFIG_IWLWIFI=m 2307CONFIG_IWLWIFI=m
2308CONFIG_IWLDVM=m
2309# CONFIG_IWLMVM is not set
2310CONFIG_IWLWIFI_OPMODE_MODULAR=y
2254 2311
2255# 2312#
2256# Debugging Options 2313# Debugging Options
2257# 2314#
2258# CONFIG_IWLWIFI_DEBUG is not set 2315# CONFIG_IWLWIFI_DEBUG is not set
2259# CONFIG_IWLWIFI_P2P is not set 2316# CONFIG_IWLWIFI_P2P is not set
2260# CONFIG_IWLWIFI_EXPERIMENTAL_MFP is not set
2261CONFIG_IWLEGACY=m 2317CONFIG_IWLEGACY=m
2262CONFIG_IWL4965=m 2318CONFIG_IWL4965=m
2263CONFIG_IWL3945=m 2319CONFIG_IWL3945=m
@@ -2266,8 +2322,6 @@ CONFIG_IWL3945=m
2266# iwl3945 / iwl4965 Debugging Options 2322# iwl3945 / iwl4965 Debugging Options
2267# 2323#
2268# CONFIG_IWLEGACY_DEBUG is not set 2324# CONFIG_IWLEGACY_DEBUG is not set
2269CONFIG_IWM=m
2270# CONFIG_IWM_DEBUG is not set
2271CONFIG_LIBERTAS=m 2325CONFIG_LIBERTAS=m
2272CONFIG_LIBERTAS_USB=m 2326CONFIG_LIBERTAS_USB=m
2273CONFIG_LIBERTAS_SDIO=m 2327CONFIG_LIBERTAS_SDIO=m
@@ -2295,14 +2349,17 @@ CONFIG_RT2800PCI=m
2295CONFIG_RT2800PCI_RT33XX=y 2349CONFIG_RT2800PCI_RT33XX=y
2296# CONFIG_RT2800PCI_RT35XX is not set 2350# CONFIG_RT2800PCI_RT35XX is not set
2297CONFIG_RT2800PCI_RT53XX=y 2351CONFIG_RT2800PCI_RT53XX=y
2352CONFIG_RT2800PCI_RT3290=y
2298CONFIG_RT2500USB=m 2353CONFIG_RT2500USB=m
2299CONFIG_RT73USB=m 2354CONFIG_RT73USB=m
2300CONFIG_RT2800USB=m 2355CONFIG_RT2800USB=m
2301CONFIG_RT2800USB_RT33XX=y 2356CONFIG_RT2800USB_RT33XX=y
2302# CONFIG_RT2800USB_RT35XX is not set 2357# CONFIG_RT2800USB_RT35XX is not set
2303CONFIG_RT2800USB_RT53XX=y 2358CONFIG_RT2800USB_RT53XX=y
2359# CONFIG_RT2800USB_RT55XX is not set
2304CONFIG_RT2800USB_UNKNOWN=y 2360CONFIG_RT2800USB_UNKNOWN=y
2305CONFIG_RT2800_LIB=m 2361CONFIG_RT2800_LIB=m
2362CONFIG_RT2X00_LIB_MMIO=m
2306CONFIG_RT2X00_LIB_PCI=m 2363CONFIG_RT2X00_LIB_PCI=m
2307CONFIG_RT2X00_LIB_USB=m 2364CONFIG_RT2X00_LIB_USB=m
2308CONFIG_RT2X00_LIB=m 2365CONFIG_RT2X00_LIB=m
@@ -2310,34 +2367,28 @@ CONFIG_RT2X00_LIB_FIRMWARE=y
2310CONFIG_RT2X00_LIB_CRYPTO=y 2367CONFIG_RT2X00_LIB_CRYPTO=y
2311CONFIG_RT2X00_LIB_LEDS=y 2368CONFIG_RT2X00_LIB_LEDS=y
2312# CONFIG_RT2X00_DEBUG is not set 2369# CONFIG_RT2X00_DEBUG is not set
2370CONFIG_RTLWIFI=m
2371# CONFIG_RTLWIFI_DEBUG is not set
2313CONFIG_RTL8192CE=m 2372CONFIG_RTL8192CE=m
2314CONFIG_RTL8192SE=m 2373CONFIG_RTL8192SE=m
2315CONFIG_RTL8192DE=m 2374CONFIG_RTL8192DE=m
2375# CONFIG_RTL8723AE is not set
2376# CONFIG_RTL8188EE is not set
2316CONFIG_RTL8192CU=m 2377CONFIG_RTL8192CU=m
2317CONFIG_RTLWIFI=m
2318# CONFIG_RTLWIFI_DEBUG is not set
2319CONFIG_RTL8192C_COMMON=m 2378CONFIG_RTL8192C_COMMON=m
2320CONFIG_WL1251=m 2379# CONFIG_WL_TI is not set
2321CONFIG_WL1251_SPI=m
2322CONFIG_WL1251_SDIO=m
2323CONFIG_WL12XX_MENU=m
2324CONFIG_WL12XX=m
2325CONFIG_WL12XX_SPI=m
2326CONFIG_WL12XX_SDIO=m
2327CONFIG_WL12XX_PLATFORM_DATA=y
2328CONFIG_ZD1211RW=m 2380CONFIG_ZD1211RW=m
2329# CONFIG_ZD1211RW_DEBUG is not set 2381# CONFIG_ZD1211RW_DEBUG is not set
2330CONFIG_MWIFIEX=m 2382CONFIG_MWIFIEX=m
2331CONFIG_MWIFIEX_SDIO=m 2383CONFIG_MWIFIEX_SDIO=m
2332CONFIG_MWIFIEX_PCIE=m 2384CONFIG_MWIFIEX_PCIE=m
2385# CONFIG_MWIFIEX_USB is not set
2333 2386
2334# 2387#
2335# WiMAX Wireless Broadband devices 2388# WiMAX Wireless Broadband devices
2336# 2389#
2337CONFIG_WIMAX_I2400M=m 2390CONFIG_WIMAX_I2400M=m
2338CONFIG_WIMAX_I2400M_USB=m 2391CONFIG_WIMAX_I2400M_USB=m
2339CONFIG_WIMAX_I2400M_SDIO=m
2340CONFIG_WIMAX_IWMC3200_SDIO=y
2341CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 2392CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
2342CONFIG_WAN=y 2393CONFIG_WAN=y
2343CONFIG_LANMEDIA=m 2394CONFIG_LANMEDIA=m
@@ -2358,13 +2409,15 @@ CONFIG_DSCC4_PCISYNC=y
2358CONFIG_DSCC4_PCI_RST=y 2409CONFIG_DSCC4_PCI_RST=y
2359CONFIG_DLCI=m 2410CONFIG_DLCI=m
2360CONFIG_DLCI_MAX=8 2411CONFIG_DLCI_MAX=8
2361CONFIG_WAN_ROUTER_DRIVERS=m
2362CONFIG_CYCLADES_SYNC=m
2363CONFIG_CYCLOMX_X25=y
2364CONFIG_LAPBETHER=m 2412CONFIG_LAPBETHER=m
2365CONFIG_X25_ASY=m 2413CONFIG_X25_ASY=m
2366CONFIG_SBNI=m 2414CONFIG_SBNI=m
2367CONFIG_SBNI_MULTILINE=y 2415CONFIG_SBNI_MULTILINE=y
2416CONFIG_IEEE802154_DRIVERS=m
2417CONFIG_IEEE802154_FAKEHARD=m
2418# CONFIG_IEEE802154_FAKELB is not set
2419# CONFIG_IEEE802154_AT86RF230 is not set
2420# CONFIG_IEEE802154_MRF24J40 is not set
2368CONFIG_VMXNET3=m 2421CONFIG_VMXNET3=m
2369CONFIG_HYPERV_NET=m 2422CONFIG_HYPERV_NET=m
2370# CONFIG_ISDN is not set 2423# CONFIG_ISDN is not set
@@ -2376,6 +2429,7 @@ CONFIG_INPUT=y
2376CONFIG_INPUT_FF_MEMLESS=m 2429CONFIG_INPUT_FF_MEMLESS=m
2377CONFIG_INPUT_POLLDEV=m 2430CONFIG_INPUT_POLLDEV=m
2378CONFIG_INPUT_SPARSEKMAP=m 2431CONFIG_INPUT_SPARSEKMAP=m
2432# CONFIG_INPUT_MATRIXKMAP is not set
2379 2433
2380# 2434#
2381# Userland interfaces 2435# Userland interfaces
@@ -2404,6 +2458,7 @@ CONFIG_KEYBOARD_ATKBD=y
2404# CONFIG_KEYBOARD_TCA8418 is not set 2458# CONFIG_KEYBOARD_TCA8418 is not set
2405# CONFIG_KEYBOARD_MATRIX is not set 2459# CONFIG_KEYBOARD_MATRIX is not set
2406# CONFIG_KEYBOARD_LM8323 is not set 2460# CONFIG_KEYBOARD_LM8323 is not set
2461# CONFIG_KEYBOARD_LM8333 is not set
2407# CONFIG_KEYBOARD_MAX7359 is not set 2462# CONFIG_KEYBOARD_MAX7359 is not set
2408# CONFIG_KEYBOARD_MCS is not set 2463# CONFIG_KEYBOARD_MCS is not set
2409# CONFIG_KEYBOARD_MPR121 is not set 2464# CONFIG_KEYBOARD_MPR121 is not set
@@ -2411,13 +2466,13 @@ CONFIG_KEYBOARD_ATKBD=y
2411# CONFIG_KEYBOARD_OPENCORES is not set 2466# CONFIG_KEYBOARD_OPENCORES is not set
2412# CONFIG_KEYBOARD_STOWAWAY is not set 2467# CONFIG_KEYBOARD_STOWAWAY is not set
2413# CONFIG_KEYBOARD_SUNKBD is not set 2468# CONFIG_KEYBOARD_SUNKBD is not set
2414# CONFIG_KEYBOARD_OMAP4 is not set
2415# CONFIG_KEYBOARD_XTKBD is not set 2469# CONFIG_KEYBOARD_XTKBD is not set
2416CONFIG_INPUT_MOUSE=y 2470CONFIG_INPUT_MOUSE=y
2417CONFIG_MOUSE_PS2=m 2471CONFIG_MOUSE_PS2=m
2418CONFIG_MOUSE_PS2_ALPS=y 2472CONFIG_MOUSE_PS2_ALPS=y
2419CONFIG_MOUSE_PS2_LOGIPS2PP=y 2473CONFIG_MOUSE_PS2_LOGIPS2PP=y
2420CONFIG_MOUSE_PS2_SYNAPTICS=y 2474CONFIG_MOUSE_PS2_SYNAPTICS=y
2475CONFIG_MOUSE_PS2_CYPRESS=y
2421CONFIG_MOUSE_PS2_LIFEBOOK=y 2476CONFIG_MOUSE_PS2_LIFEBOOK=y
2422CONFIG_MOUSE_PS2_TRACKPOINT=y 2477CONFIG_MOUSE_PS2_TRACKPOINT=y
2423# CONFIG_MOUSE_PS2_ELANTECH is not set 2478# CONFIG_MOUSE_PS2_ELANTECH is not set
@@ -2426,6 +2481,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
2426CONFIG_MOUSE_SERIAL=m 2481CONFIG_MOUSE_SERIAL=m
2427CONFIG_MOUSE_APPLETOUCH=m 2482CONFIG_MOUSE_APPLETOUCH=m
2428CONFIG_MOUSE_BCM5974=m 2483CONFIG_MOUSE_BCM5974=m
2484# CONFIG_MOUSE_CYAPA is not set
2429CONFIG_MOUSE_VSXXXAA=m 2485CONFIG_MOUSE_VSXXXAA=m
2430CONFIG_MOUSE_GPIO=m 2486CONFIG_MOUSE_GPIO=m
2431CONFIG_MOUSE_SYNAPTICS_I2C=m 2487CONFIG_MOUSE_SYNAPTICS_I2C=m
@@ -2446,18 +2502,20 @@ CONFIG_TOUCHSCREEN_CY8CTMG110=m
2446CONFIG_TOUCHSCREEN_DYNAPRO=m 2502CONFIG_TOUCHSCREEN_DYNAPRO=m
2447CONFIG_TOUCHSCREEN_HAMPSHIRE=m 2503CONFIG_TOUCHSCREEN_HAMPSHIRE=m
2448CONFIG_TOUCHSCREEN_EETI=m 2504CONFIG_TOUCHSCREEN_EETI=m
2449CONFIG_TOUCHSCREEN_EGALAX=m
2450CONFIG_TOUCHSCREEN_FUJITSU=m 2505CONFIG_TOUCHSCREEN_FUJITSU=m
2451# CONFIG_TOUCHSCREEN_ILI210X is not set 2506# CONFIG_TOUCHSCREEN_ILI210X is not set
2452CONFIG_TOUCHSCREEN_GUNZE=m 2507CONFIG_TOUCHSCREEN_GUNZE=m
2453CONFIG_TOUCHSCREEN_ELO=m 2508CONFIG_TOUCHSCREEN_ELO=m
2454CONFIG_TOUCHSCREEN_WACOM_W8001=m 2509CONFIG_TOUCHSCREEN_WACOM_W8001=m
2510# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
2455# CONFIG_TOUCHSCREEN_MAX11801 is not set 2511# CONFIG_TOUCHSCREEN_MAX11801 is not set
2456# CONFIG_TOUCHSCREEN_MCS5000 is not set 2512# CONFIG_TOUCHSCREEN_MCS5000 is not set
2513# CONFIG_TOUCHSCREEN_MMS114 is not set
2457CONFIG_TOUCHSCREEN_MTOUCH=m 2514CONFIG_TOUCHSCREEN_MTOUCH=m
2458CONFIG_TOUCHSCREEN_INEXIO=m 2515CONFIG_TOUCHSCREEN_INEXIO=m
2459CONFIG_TOUCHSCREEN_MK712=m 2516CONFIG_TOUCHSCREEN_MK712=m
2460CONFIG_TOUCHSCREEN_PENMOUNT=m 2517CONFIG_TOUCHSCREEN_PENMOUNT=m
2518# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
2461CONFIG_TOUCHSCREEN_TOUCHRIGHT=m 2519CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
2462CONFIG_TOUCHSCREEN_TOUCHWIN=m 2520CONFIG_TOUCHSCREEN_TOUCHWIN=m
2463CONFIG_TOUCHSCREEN_PIXCIR=m 2521CONFIG_TOUCHSCREEN_PIXCIR=m
@@ -2516,6 +2574,7 @@ CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
2516CONFIG_INPUT_ADXL34X=m 2574CONFIG_INPUT_ADXL34X=m
2517CONFIG_INPUT_ADXL34X_I2C=m 2575CONFIG_INPUT_ADXL34X_I2C=m
2518CONFIG_INPUT_ADXL34X_SPI=m 2576CONFIG_INPUT_ADXL34X_SPI=m
2577# CONFIG_INPUT_IMS_PCU is not set
2519CONFIG_INPUT_CMA3000=m 2578CONFIG_INPUT_CMA3000=m
2520CONFIG_INPUT_CMA3000_I2C=m 2579CONFIG_INPUT_CMA3000_I2C=m
2521 2580
@@ -2532,11 +2591,13 @@ CONFIG_SERIO_LIBPS2=y
2532CONFIG_SERIO_RAW=m 2591CONFIG_SERIO_RAW=m
2533CONFIG_SERIO_ALTERA_PS2=m 2592CONFIG_SERIO_ALTERA_PS2=m
2534CONFIG_SERIO_PS2MULT=m 2593CONFIG_SERIO_PS2MULT=m
2594# CONFIG_SERIO_ARC_PS2 is not set
2535# CONFIG_GAMEPORT is not set 2595# CONFIG_GAMEPORT is not set
2536 2596
2537# 2597#
2538# Character devices 2598# Character devices
2539# 2599#
2600CONFIG_TTY=y
2540CONFIG_VT=y 2601CONFIG_VT=y
2541CONFIG_CONSOLE_TRANSLATIONS=y 2602CONFIG_CONSOLE_TRANSLATIONS=y
2542CONFIG_VT_CONSOLE=y 2603CONFIG_VT_CONSOLE=y
@@ -2567,10 +2628,12 @@ CONFIG_STALDRV=y
2567# Serial drivers 2628# Serial drivers
2568# 2629#
2569CONFIG_SERIAL_8250=y 2630CONFIG_SERIAL_8250=y
2631CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
2632CONFIG_SERIAL_8250_PNP=y
2570CONFIG_SERIAL_8250_CONSOLE=y 2633CONFIG_SERIAL_8250_CONSOLE=y
2571CONFIG_FIX_EARLYCON_MEM=y 2634CONFIG_FIX_EARLYCON_MEM=y
2635CONFIG_SERIAL_8250_DMA=y
2572CONFIG_SERIAL_8250_PCI=y 2636CONFIG_SERIAL_8250_PCI=y
2573CONFIG_SERIAL_8250_PNP=y
2574CONFIG_SERIAL_8250_NR_UARTS=16 2637CONFIG_SERIAL_8250_NR_UARTS=16
2575CONFIG_SERIAL_8250_RUNTIME_UARTS=4 2638CONFIG_SERIAL_8250_RUNTIME_UARTS=4
2576CONFIG_SERIAL_8250_EXTENDED=y 2639CONFIG_SERIAL_8250_EXTENDED=y
@@ -2578,17 +2641,19 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
2578CONFIG_SERIAL_8250_SHARE_IRQ=y 2641CONFIG_SERIAL_8250_SHARE_IRQ=y
2579# CONFIG_SERIAL_8250_DETECT_IRQ is not set 2642# CONFIG_SERIAL_8250_DETECT_IRQ is not set
2580CONFIG_SERIAL_8250_RSA=y 2643CONFIG_SERIAL_8250_RSA=y
2644# CONFIG_SERIAL_8250_DW is not set
2581 2645
2582# 2646#
2583# Non-8250 serial port support 2647# Non-8250 serial port support
2584# 2648#
2585CONFIG_SERIAL_MAX3100=m 2649CONFIG_SERIAL_MAX3100=m
2586CONFIG_SERIAL_MAX3107=m 2650# CONFIG_SERIAL_MAX310X is not set
2587CONFIG_SERIAL_MRST_MAX3110=m 2651CONFIG_SERIAL_MRST_MAX3110=m
2588CONFIG_SERIAL_MFD_HSU=m 2652CONFIG_SERIAL_MFD_HSU=m
2589CONFIG_SERIAL_CORE=y 2653CONFIG_SERIAL_CORE=y
2590CONFIG_SERIAL_CORE_CONSOLE=y 2654CONFIG_SERIAL_CORE_CONSOLE=y
2591CONFIG_SERIAL_JSM=m 2655CONFIG_SERIAL_JSM=m
2656# CONFIG_SERIAL_SCCNXP is not set
2592CONFIG_SERIAL_TIMBERDALE=m 2657CONFIG_SERIAL_TIMBERDALE=m
2593CONFIG_SERIAL_ALTERA_JTAGUART=m 2658CONFIG_SERIAL_ALTERA_JTAGUART=m
2594CONFIG_SERIAL_ALTERA_UART=m 2659CONFIG_SERIAL_ALTERA_UART=m
@@ -2596,7 +2661,8 @@ CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
2596CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 2661CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
2597CONFIG_SERIAL_IFX6X60=m 2662CONFIG_SERIAL_IFX6X60=m
2598CONFIG_SERIAL_PCH_UART=m 2663CONFIG_SERIAL_PCH_UART=m
2599# CONFIG_SERIAL_XILINX_PS_UART is not set 2664# CONFIG_SERIAL_ARC is not set
2665# CONFIG_SERIAL_RP2 is not set
2600# CONFIG_TTY_PRINTK is not set 2666# CONFIG_TTY_PRINTK is not set
2601CONFIG_PRINTER=m 2667CONFIG_PRINTER=m
2602# CONFIG_LP_CONSOLE is not set 2668# CONFIG_LP_CONSOLE is not set
@@ -2616,6 +2682,7 @@ CONFIG_HW_RANDOM_AMD=m
2616CONFIG_HW_RANDOM_GEODE=m 2682CONFIG_HW_RANDOM_GEODE=m
2617CONFIG_HW_RANDOM_VIA=m 2683CONFIG_HW_RANDOM_VIA=m
2618CONFIG_HW_RANDOM_VIRTIO=m 2684CONFIG_HW_RANDOM_VIRTIO=m
2685CONFIG_HW_RANDOM_TPM=m
2619CONFIG_NVRAM=m 2686CONFIG_NVRAM=m
2620CONFIG_R3964=m 2687CONFIG_R3964=m
2621CONFIG_APPLICOM=m 2688CONFIG_APPLICOM=m
@@ -2630,12 +2697,13 @@ CONFIG_HPET_MMAP=y
2630CONFIG_HANGCHECK_TIMER=m 2697CONFIG_HANGCHECK_TIMER=m
2631CONFIG_TCG_TPM=m 2698CONFIG_TCG_TPM=m
2632CONFIG_TCG_TIS=m 2699CONFIG_TCG_TIS=m
2700# CONFIG_TCG_TIS_I2C_INFINEON is not set
2633CONFIG_TCG_NSC=m 2701CONFIG_TCG_NSC=m
2634CONFIG_TCG_ATMEL=m 2702CONFIG_TCG_ATMEL=m
2635CONFIG_TCG_INFINEON=m 2703CONFIG_TCG_INFINEON=m
2704# CONFIG_TCG_ST33_I2C is not set
2636CONFIG_TELCLOCK=m 2705CONFIG_TELCLOCK=m
2637CONFIG_DEVPORT=y 2706CONFIG_DEVPORT=y
2638CONFIG_RAMOOPS=m
2639CONFIG_I2C=m 2707CONFIG_I2C=m
2640CONFIG_I2C_BOARDINFO=y 2708CONFIG_I2C_BOARDINFO=y
2641CONFIG_I2C_COMPAT=y 2709CONFIG_I2C_COMPAT=y
@@ -2668,6 +2736,7 @@ CONFIG_I2C_AMD756_S4882=m
2668CONFIG_I2C_AMD8111=m 2736CONFIG_I2C_AMD8111=m
2669CONFIG_I2C_I801=m 2737CONFIG_I2C_I801=m
2670CONFIG_I2C_ISCH=m 2738CONFIG_I2C_ISCH=m
2739# CONFIG_I2C_ISMT is not set
2671CONFIG_I2C_PIIX4=m 2740CONFIG_I2C_PIIX4=m
2672CONFIG_I2C_NFORCE2=m 2741CONFIG_I2C_NFORCE2=m
2673CONFIG_I2C_NFORCE2_S4985=m 2742CONFIG_I2C_NFORCE2_S4985=m
@@ -2685,6 +2754,7 @@ CONFIG_I2C_SCMI=m
2685# 2754#
2686# I2C system bus drivers (mostly embedded / system-on-chip) 2755# I2C system bus drivers (mostly embedded / system-on-chip)
2687# 2756#
2757# CONFIG_I2C_CBUS_GPIO is not set
2688# CONFIG_I2C_DESIGNWARE_PCI is not set 2758# CONFIG_I2C_DESIGNWARE_PCI is not set
2689CONFIG_I2C_EG20T=m 2759CONFIG_I2C_EG20T=m
2690CONFIG_I2C_GPIO=m 2760CONFIG_I2C_GPIO=m
@@ -2707,8 +2777,8 @@ CONFIG_I2C_TINY_USB=m
2707# 2777#
2708# Other I2C/SMBus bus drivers 2778# Other I2C/SMBus bus drivers
2709# 2779#
2710CONFIG_I2C_STUB=m
2711# CONFIG_SCx200_ACB is not set 2780# CONFIG_SCx200_ACB is not set
2781CONFIG_I2C_STUB=m
2712# CONFIG_I2C_DEBUG_CORE is not set 2782# CONFIG_I2C_DEBUG_CORE is not set
2713# CONFIG_I2C_DEBUG_ALGO is not set 2783# CONFIG_I2C_DEBUG_ALGO is not set
2714# CONFIG_I2C_DEBUG_BUS is not set 2784# CONFIG_I2C_DEBUG_BUS is not set
@@ -2725,9 +2795,12 @@ CONFIG_SPI_BUTTERFLY=m
2725CONFIG_SPI_GPIO=m 2795CONFIG_SPI_GPIO=m
2726CONFIG_SPI_LM70_LLP=m 2796CONFIG_SPI_LM70_LLP=m
2727# CONFIG_SPI_OC_TINY is not set 2797# CONFIG_SPI_OC_TINY is not set
2798CONFIG_SPI_PXA2XX_DMA=y
2728CONFIG_SPI_PXA2XX=m 2799CONFIG_SPI_PXA2XX=m
2729CONFIG_SPI_PXA2XX_PCI=y 2800CONFIG_SPI_PXA2XX_PCI=m
2801# CONFIG_SPI_SC18IS602 is not set
2730CONFIG_SPI_TOPCLIFF_PCH=m 2802CONFIG_SPI_TOPCLIFF_PCH=m
2803# CONFIG_SPI_XCOMM is not set
2731# CONFIG_SPI_XILINX is not set 2804# CONFIG_SPI_XILINX is not set
2732CONFIG_SPI_DESIGNWARE=m 2805CONFIG_SPI_DESIGNWARE=m
2733CONFIG_SPI_DW_PCI=m 2806CONFIG_SPI_DW_PCI=m
@@ -2737,26 +2810,41 @@ CONFIG_SPI_DW_PCI=m
2737# 2810#
2738CONFIG_SPI_SPIDEV=m 2811CONFIG_SPI_SPIDEV=m
2739CONFIG_SPI_TLE62X0=m 2812CONFIG_SPI_TLE62X0=m
2813
2814#
2815# Qualcomm MSM SSBI bus support
2816#
2817# CONFIG_SSBI is not set
2740# CONFIG_HSI is not set 2818# CONFIG_HSI is not set
2741 2819
2742# 2820#
2743# PPS support 2821# PPS support
2744# 2822#
2745# CONFIG_PPS is not set 2823CONFIG_PPS=m
2824# CONFIG_PPS_DEBUG is not set
2746 2825
2747# 2826#
2748# PPS generators support 2827# PPS clients support
2749# 2828#
2829# CONFIG_PPS_CLIENT_KTIMER is not set
2830# CONFIG_PPS_CLIENT_LDISC is not set
2831# CONFIG_PPS_CLIENT_PARPORT is not set
2832# CONFIG_PPS_CLIENT_GPIO is not set
2750 2833
2751# 2834#
2752# PTP clock support 2835# PPS generators support
2753# 2836#
2754 2837
2755# 2838#
2756# Enable Device Drivers -> PPS to see the PTP clock options. 2839# PTP clock support
2757# 2840#
2841CONFIG_PTP_1588_CLOCK=m
2842# CONFIG_DP83640_PHY is not set
2843CONFIG_PTP_1588_CLOCK_PCH=m
2758CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 2844CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
2845CONFIG_GPIO_DEVRES=y
2759CONFIG_GPIOLIB=y 2846CONFIG_GPIOLIB=y
2847CONFIG_GPIO_ACPI=y
2760# CONFIG_DEBUG_GPIO is not set 2848# CONFIG_DEBUG_GPIO is not set
2761# CONFIG_GPIO_SYSFS is not set 2849# CONFIG_GPIO_SYSFS is not set
2762CONFIG_GPIO_MAX730X=m 2850CONFIG_GPIO_MAX730X=m
@@ -2766,8 +2854,11 @@ CONFIG_GPIO_MAX730X=m
2766# 2854#
2767# CONFIG_GPIO_GENERIC_PLATFORM is not set 2855# CONFIG_GPIO_GENERIC_PLATFORM is not set
2768CONFIG_GPIO_IT8761E=m 2856CONFIG_GPIO_IT8761E=m
2857# CONFIG_GPIO_TS5500 is not set
2769CONFIG_GPIO_SCH=m 2858CONFIG_GPIO_SCH=m
2859# CONFIG_GPIO_ICH is not set
2770CONFIG_GPIO_VX855=m 2860CONFIG_GPIO_VX855=m
2861# CONFIG_GPIO_LYNXPOINT is not set
2771 2862
2772# 2863#
2773# I2C GPIO expanders: 2864# I2C GPIO expanders:
@@ -2783,6 +2874,7 @@ CONFIG_GPIO_ADP5588=m
2783# 2874#
2784CONFIG_GPIO_CS5535=m 2875CONFIG_GPIO_CS5535=m
2785# CONFIG_GPIO_BT8XX is not set 2876# CONFIG_GPIO_BT8XX is not set
2877# CONFIG_GPIO_AMD8111 is not set
2786# CONFIG_GPIO_LANGWELL is not set 2878# CONFIG_GPIO_LANGWELL is not set
2787CONFIG_GPIO_PCH=m 2879CONFIG_GPIO_PCH=m
2788CONFIG_GPIO_ML_IOH=m 2880CONFIG_GPIO_ML_IOH=m
@@ -2803,6 +2895,10 @@ CONFIG_GPIO_74X164=m
2803# 2895#
2804# MODULbus GPIO expanders: 2896# MODULbus GPIO expanders:
2805# 2897#
2898
2899#
2900# USB GPIO expanders:
2901#
2806# CONFIG_W1 is not set 2902# CONFIG_W1 is not set
2807CONFIG_POWER_SUPPLY=y 2903CONFIG_POWER_SUPPLY=y
2808# CONFIG_POWER_SUPPLY_DEBUG is not set 2904# CONFIG_POWER_SUPPLY_DEBUG is not set
@@ -2819,7 +2915,11 @@ CONFIG_POWER_SUPPLY=y
2819# CONFIG_CHARGER_MAX8903 is not set 2915# CONFIG_CHARGER_MAX8903 is not set
2820# CONFIG_CHARGER_LP8727 is not set 2916# CONFIG_CHARGER_LP8727 is not set
2821# CONFIG_CHARGER_GPIO is not set 2917# CONFIG_CHARGER_GPIO is not set
2918# CONFIG_CHARGER_BQ2415X is not set
2822# CONFIG_CHARGER_SMB347 is not set 2919# CONFIG_CHARGER_SMB347 is not set
2920# CONFIG_BATTERY_GOLDFISH is not set
2921# CONFIG_POWER_RESET is not set
2922# CONFIG_POWER_AVS is not set
2823CONFIG_HWMON=m 2923CONFIG_HWMON=m
2824CONFIG_HWMON_VID=m 2924CONFIG_HWMON_VID=m
2825# CONFIG_HWMON_DEBUG_CHIP is not set 2925# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2839,6 +2939,8 @@ CONFIG_SENSORS_ADM1026=m
2839CONFIG_SENSORS_ADM1029=m 2939CONFIG_SENSORS_ADM1029=m
2840CONFIG_SENSORS_ADM1031=m 2940CONFIG_SENSORS_ADM1031=m
2841CONFIG_SENSORS_ADM9240=m 2941CONFIG_SENSORS_ADM9240=m
2942# CONFIG_SENSORS_ADT7310 is not set
2943# CONFIG_SENSORS_ADT7410 is not set
2842CONFIG_SENSORS_ADT7411=m 2944CONFIG_SENSORS_ADT7411=m
2843CONFIG_SENSORS_ADT7462=m 2945CONFIG_SENSORS_ADT7462=m
2844CONFIG_SENSORS_ADT7470=m 2946CONFIG_SENSORS_ADT7470=m
@@ -2860,6 +2962,7 @@ CONFIG_SENSORS_G760A=m
2860CONFIG_SENSORS_GL518SM=m 2962CONFIG_SENSORS_GL518SM=m
2861CONFIG_SENSORS_GL520SM=m 2963CONFIG_SENSORS_GL520SM=m
2862CONFIG_SENSORS_GPIO_FAN=m 2964CONFIG_SENSORS_GPIO_FAN=m
2965# CONFIG_SENSORS_HIH6130 is not set
2863CONFIG_SENSORS_CORETEMP=m 2966CONFIG_SENSORS_CORETEMP=m
2864CONFIG_SENSORS_IBMAEM=m 2967CONFIG_SENSORS_IBMAEM=m
2865CONFIG_SENSORS_IBMPEX=m 2968CONFIG_SENSORS_IBMPEX=m
@@ -2883,16 +2986,20 @@ CONFIG_SENSORS_LTC4151=m
2883CONFIG_SENSORS_LTC4215=m 2986CONFIG_SENSORS_LTC4215=m
2884CONFIG_SENSORS_LTC4245=m 2987CONFIG_SENSORS_LTC4245=m
2885CONFIG_SENSORS_LTC4261=m 2988CONFIG_SENSORS_LTC4261=m
2989# CONFIG_SENSORS_LM95234 is not set
2886CONFIG_SENSORS_LM95241=m 2990CONFIG_SENSORS_LM95241=m
2887CONFIG_SENSORS_LM95245=m 2991CONFIG_SENSORS_LM95245=m
2888CONFIG_SENSORS_MAX1111=m 2992CONFIG_SENSORS_MAX1111=m
2889CONFIG_SENSORS_MAX16065=m 2993CONFIG_SENSORS_MAX16065=m
2890CONFIG_SENSORS_MAX1619=m 2994CONFIG_SENSORS_MAX1619=m
2891CONFIG_SENSORS_MAX1668=m 2995CONFIG_SENSORS_MAX1668=m
2996# CONFIG_SENSORS_MAX197 is not set
2892CONFIG_SENSORS_MAX6639=m 2997CONFIG_SENSORS_MAX6639=m
2893CONFIG_SENSORS_MAX6642=m 2998CONFIG_SENSORS_MAX6642=m
2894CONFIG_SENSORS_MAX6650=m 2999CONFIG_SENSORS_MAX6650=m
3000# CONFIG_SENSORS_MAX6697 is not set
2895CONFIG_SENSORS_MCP3021=m 3001CONFIG_SENSORS_MCP3021=m
3002# CONFIG_SENSORS_NCT6775 is not set
2896CONFIG_SENSORS_NTC_THERMISTOR=m 3003CONFIG_SENSORS_NTC_THERMISTOR=m
2897CONFIG_SENSORS_PC87360=m 3004CONFIG_SENSORS_PC87360=m
2898CONFIG_SENSORS_PC87427=m 3005CONFIG_SENSORS_PC87427=m
@@ -2926,6 +3033,8 @@ CONFIG_SENSORS_ADS1015=m
2926CONFIG_SENSORS_ADS7828=m 3033CONFIG_SENSORS_ADS7828=m
2927CONFIG_SENSORS_ADS7871=m 3034CONFIG_SENSORS_ADS7871=m
2928CONFIG_SENSORS_AMC6821=m 3035CONFIG_SENSORS_AMC6821=m
3036# CONFIG_SENSORS_INA209 is not set
3037# CONFIG_SENSORS_INA2XX is not set
2929CONFIG_SENSORS_THMC50=m 3038CONFIG_SENSORS_THMC50=m
2930CONFIG_SENSORS_TMP102=m 3039CONFIG_SENSORS_TMP102=m
2931CONFIG_SENSORS_TMP401=m 3040CONFIG_SENSORS_TMP401=m
@@ -2952,6 +3061,15 @@ CONFIG_SENSORS_APPLESMC=m
2952CONFIG_SENSORS_ACPI_POWER=m 3061CONFIG_SENSORS_ACPI_POWER=m
2953CONFIG_SENSORS_ATK0110=m 3062CONFIG_SENSORS_ATK0110=m
2954CONFIG_THERMAL=y 3063CONFIG_THERMAL=y
3064CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
3065# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
3066# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
3067# CONFIG_THERMAL_GOV_FAIR_SHARE is not set
3068CONFIG_THERMAL_GOV_STEP_WISE=y
3069# CONFIG_THERMAL_GOV_USER_SPACE is not set
3070# CONFIG_CPU_THERMAL is not set
3071# CONFIG_THERMAL_EMULATION is not set
3072# CONFIG_INTEL_POWERCLAMP is not set
2955CONFIG_WATCHDOG=y 3073CONFIG_WATCHDOG=y
2956CONFIG_WATCHDOG_CORE=y 3074CONFIG_WATCHDOG_CORE=y
2957# CONFIG_WATCHDOG_NOWAYOUT is not set 3075# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -2974,6 +3092,7 @@ CONFIG_IB700_WDT=m
2974CONFIG_IBMASR=m 3092CONFIG_IBMASR=m
2975CONFIG_WAFER_WDT=m 3093CONFIG_WAFER_WDT=m
2976CONFIG_I6300ESB_WDT=m 3094CONFIG_I6300ESB_WDT=m
3095# CONFIG_IE6XX_WDT is not set
2977CONFIG_ITCO_WDT=m 3096CONFIG_ITCO_WDT=m
2978CONFIG_ITCO_VENDOR_SUPPORT=y 3097CONFIG_ITCO_VENDOR_SUPPORT=y
2979CONFIG_IT8712F_WDT=m 3098CONFIG_IT8712F_WDT=m
@@ -3024,6 +3143,7 @@ CONFIG_SSB_SDIOHOST=y
3024# CONFIG_SSB_DEBUG is not set 3143# CONFIG_SSB_DEBUG is not set
3025CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y 3144CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
3026CONFIG_SSB_DRIVER_PCICORE=y 3145CONFIG_SSB_DRIVER_PCICORE=y
3146# CONFIG_SSB_DRIVER_GPIO is not set
3027CONFIG_BCMA_POSSIBLE=y 3147CONFIG_BCMA_POSSIBLE=y
3028 3148
3029# 3149#
@@ -3035,30 +3155,42 @@ CONFIG_BCMA_POSSIBLE=y
3035# Multifunction device drivers 3155# Multifunction device drivers
3036# 3156#
3037CONFIG_MFD_CORE=m 3157CONFIG_MFD_CORE=m
3038# CONFIG_MFD_SM501 is not set 3158CONFIG_MFD_CS5535=m
3159# CONFIG_MFD_CROS_EC is not set
3160# CONFIG_MFD_DA9052_SPI is not set
3161# CONFIG_MFD_MC13XXX_SPI is not set
3162# CONFIG_MFD_MC13XXX_I2C is not set
3039# CONFIG_HTC_PASIC3 is not set 3163# CONFIG_HTC_PASIC3 is not set
3164CONFIG_LPC_ICH=m
3165CONFIG_LPC_SCH=m
3166# CONFIG_MFD_JANZ_CMODIO is not set
3167# CONFIG_EZX_PCAP is not set
3168# CONFIG_MFD_VIPERBOARD is not set
3169# CONFIG_MFD_RETU is not set
3170# CONFIG_MFD_PCF50633 is not set
3040# CONFIG_UCB1400_CORE is not set 3171# CONFIG_UCB1400_CORE is not set
3172CONFIG_MFD_RDC321X=m
3173# CONFIG_MFD_RTSX_PCI is not set
3174# CONFIG_MFD_SI476X_CORE is not set
3175# CONFIG_MFD_SM501 is not set
3176# CONFIG_ABX500_CORE is not set
3177# CONFIG_MFD_STMPE is not set
3178# CONFIG_MFD_SYSCON is not set
3179# CONFIG_MFD_TI_AM335X_TSCADC is not set
3041# CONFIG_TPS6105X is not set 3180# CONFIG_TPS6105X is not set
3042# CONFIG_TPS65010 is not set 3181# CONFIG_TPS65010 is not set
3043# CONFIG_TPS6507X is not set 3182# CONFIG_TPS6507X is not set
3044# CONFIG_MFD_TPS65217 is not set 3183# CONFIG_MFD_TPS65217 is not set
3184# CONFIG_MFD_TPS65912 is not set
3045# CONFIG_MFD_TPS65912_SPI is not set 3185# CONFIG_MFD_TPS65912_SPI is not set
3046# CONFIG_MFD_STMPE is not set 3186CONFIG_MFD_WL1273_CORE=m
3047# CONFIG_MFD_TMIO is not set 3187# CONFIG_MFD_LM3533 is not set
3048# CONFIG_MFD_DA9052_SPI is not set
3049# CONFIG_MFD_WM8400 is not set
3050# CONFIG_MFD_WM831X_SPI is not set
3051# CONFIG_MFD_PCF50633 is not set
3052# CONFIG_MFD_MC13XXX is not set
3053# CONFIG_ABX500_CORE is not set
3054# CONFIG_EZX_PCAP is not set
3055CONFIG_MFD_CS5535=m
3056# CONFIG_MFD_TIMBERDALE is not set 3188# CONFIG_MFD_TIMBERDALE is not set
3057CONFIG_LPC_SCH=m 3189# CONFIG_MFD_TMIO is not set
3058CONFIG_MFD_RDC321X=m
3059# CONFIG_MFD_JANZ_CMODIO is not set
3060CONFIG_MFD_VX855=m 3190CONFIG_MFD_VX855=m
3061CONFIG_MFD_WL1273_CORE=m 3191# CONFIG_MFD_ARIZONA_I2C is not set
3192# CONFIG_MFD_ARIZONA_SPI is not set
3193# CONFIG_MFD_WM831X_SPI is not set
3062# CONFIG_REGULATOR is not set 3194# CONFIG_REGULATOR is not set
3063# CONFIG_MEDIA_SUPPORT is not set 3195# CONFIG_MEDIA_SUPPORT is not set
3064 3196
@@ -3083,19 +3215,21 @@ CONFIG_DRM=m
3083CONFIG_DRM_KMS_HELPER=m 3215CONFIG_DRM_KMS_HELPER=m
3084# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set 3216# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
3085CONFIG_DRM_TTM=m 3217CONFIG_DRM_TTM=m
3086CONFIG_DRM_TDFX=m
3087CONFIG_DRM_R128=m
3088CONFIG_DRM_RADEON=m
3089# CONFIG_DRM_RADEON_KMS is not set
3090CONFIG_DRM_NOUVEAU=m
3091CONFIG_DRM_NOUVEAU_BACKLIGHT=y
3092CONFIG_DRM_NOUVEAU_DEBUG=y
3093 3218
3094# 3219#
3095# I2C encoder or helper chips 3220# I2C encoder or helper chips
3096# 3221#
3097# CONFIG_DRM_I2C_CH7006 is not set 3222# CONFIG_DRM_I2C_CH7006 is not set
3098CONFIG_DRM_I2C_SIL164=m 3223CONFIG_DRM_I2C_SIL164=m
3224# CONFIG_DRM_I2C_NXP_TDA998X is not set
3225CONFIG_DRM_TDFX=m
3226CONFIG_DRM_R128=m
3227CONFIG_DRM_RADEON=m
3228# CONFIG_DRM_RADEON_UMS is not set
3229CONFIG_DRM_NOUVEAU=m
3230CONFIG_NOUVEAU_DEBUG=5
3231CONFIG_NOUVEAU_DEBUG_DEFAULT=3
3232CONFIG_DRM_NOUVEAU_BACKLIGHT=y
3099CONFIG_DRM_I810=m 3233CONFIG_DRM_I810=m
3100CONFIG_DRM_I915=m 3234CONFIG_DRM_I915=m
3101# CONFIG_DRM_I915_KMS is not set 3235# CONFIG_DRM_I915_KMS is not set
@@ -3104,13 +3238,18 @@ CONFIG_DRM_SIS=m
3104CONFIG_DRM_VIA=m 3238CONFIG_DRM_VIA=m
3105CONFIG_DRM_SAVAGE=m 3239CONFIG_DRM_SAVAGE=m
3106CONFIG_DRM_VMWGFX=m 3240CONFIG_DRM_VMWGFX=m
3241# CONFIG_DRM_VMWGFX_FBCON is not set
3107CONFIG_DRM_GMA500=m 3242CONFIG_DRM_GMA500=m
3108CONFIG_DRM_GMA600=y 3243CONFIG_DRM_GMA600=y
3109CONFIG_DRM_GMA3600=y 3244CONFIG_DRM_GMA3600=y
3110# CONFIG_DRM_UDL is not set 3245# CONFIG_DRM_UDL is not set
3111# CONFIG_STUB_POULSBO is not set 3246# CONFIG_DRM_AST is not set
3247# CONFIG_DRM_MGAG200 is not set
3248CONFIG_DRM_CIRRUS_QEMU=m
3249CONFIG_DRM_QXL=m
3112CONFIG_VGASTATE=m 3250CONFIG_VGASTATE=m
3113CONFIG_VIDEO_OUTPUT_CONTROL=m 3251CONFIG_VIDEO_OUTPUT_CONTROL=m
3252CONFIG_HDMI=y
3114CONFIG_FB=m 3253CONFIG_FB=m
3115# CONFIG_FIRMWARE_EDID is not set 3254# CONFIG_FIRMWARE_EDID is not set
3116CONFIG_FB_DDC=m 3255CONFIG_FB_DDC=m
@@ -3124,7 +3263,6 @@ CONFIG_FB_SYS_COPYAREA=m
3124CONFIG_FB_SYS_IMAGEBLIT=m 3263CONFIG_FB_SYS_IMAGEBLIT=m
3125# CONFIG_FB_FOREIGN_ENDIAN is not set 3264# CONFIG_FB_FOREIGN_ENDIAN is not set
3126CONFIG_FB_SYS_FOPS=m 3265CONFIG_FB_SYS_FOPS=m
3127# CONFIG_FB_WMT_GE_ROPS is not set
3128CONFIG_FB_DEFERRED_IO=y 3266CONFIG_FB_DEFERRED_IO=y
3129CONFIG_FB_HECUBA=m 3267CONFIG_FB_HECUBA=m
3130CONFIG_FB_SVGALIB=m 3268CONFIG_FB_SVGALIB=m
@@ -3211,18 +3349,22 @@ CONFIG_FB_TMIO=m
3211CONFIG_FB_TMIO_ACCELL=y 3349CONFIG_FB_TMIO_ACCELL=y
3212# CONFIG_FB_SMSCUFX is not set 3350# CONFIG_FB_SMSCUFX is not set
3213# CONFIG_FB_UDL is not set 3351# CONFIG_FB_UDL is not set
3352# CONFIG_FB_GOLDFISH is not set
3214# CONFIG_FB_VIRTUAL is not set 3353# CONFIG_FB_VIRTUAL is not set
3215CONFIG_FB_METRONOME=m 3354CONFIG_FB_METRONOME=m
3216CONFIG_FB_MB862XX=m 3355CONFIG_FB_MB862XX=m
3217CONFIG_FB_MB862XX_PCI_GDC=y 3356CONFIG_FB_MB862XX_PCI_GDC=y
3218CONFIG_FB_MB862XX_I2C=y 3357CONFIG_FB_MB862XX_I2C=y
3219CONFIG_FB_BROADSHEET=m 3358CONFIG_FB_BROADSHEET=m
3359# CONFIG_FB_AUO_K190X is not set
3360CONFIG_FB_HYPERV=m
3220# CONFIG_EXYNOS_VIDEO is not set 3361# CONFIG_EXYNOS_VIDEO is not set
3221CONFIG_BACKLIGHT_LCD_SUPPORT=y 3362CONFIG_BACKLIGHT_LCD_SUPPORT=y
3222CONFIG_LCD_CLASS_DEVICE=m 3363CONFIG_LCD_CLASS_DEVICE=m
3223CONFIG_LCD_L4F00242T03=m 3364CONFIG_LCD_L4F00242T03=m
3224CONFIG_LCD_LMS283GF05=m 3365CONFIG_LCD_LMS283GF05=m
3225CONFIG_LCD_LTV350QV=m 3366CONFIG_LCD_LTV350QV=m
3367# CONFIG_LCD_ILI922X is not set
3226CONFIG_LCD_ILI9320=m 3368CONFIG_LCD_ILI9320=m
3227CONFIG_LCD_TDO24M=m 3369CONFIG_LCD_TDO24M=m
3228CONFIG_LCD_VGG2432A4=m 3370CONFIG_LCD_VGG2432A4=m
@@ -3230,14 +3372,17 @@ CONFIG_LCD_PLATFORM=m
3230CONFIG_LCD_S6E63M0=m 3372CONFIG_LCD_S6E63M0=m
3231# CONFIG_LCD_LD9040 is not set 3373# CONFIG_LCD_LD9040 is not set
3232CONFIG_LCD_AMS369FG06=m 3374CONFIG_LCD_AMS369FG06=m
3375# CONFIG_LCD_LMS501KF03 is not set
3376# CONFIG_LCD_HX8357 is not set
3233CONFIG_BACKLIGHT_CLASS_DEVICE=m 3377CONFIG_BACKLIGHT_CLASS_DEVICE=m
3234CONFIG_BACKLIGHT_GENERIC=m 3378CONFIG_BACKLIGHT_GENERIC=m
3235CONFIG_BACKLIGHT_PROGEAR=m
3236CONFIG_BACKLIGHT_CARILLO_RANCH=m 3379CONFIG_BACKLIGHT_CARILLO_RANCH=m
3237# CONFIG_BACKLIGHT_APPLE is not set 3380# CONFIG_BACKLIGHT_APPLE is not set
3238CONFIG_BACKLIGHT_SAHARA=m 3381CONFIG_BACKLIGHT_SAHARA=m
3239CONFIG_BACKLIGHT_ADP8860=m 3382CONFIG_BACKLIGHT_ADP8860=m
3240# CONFIG_BACKLIGHT_ADP8870 is not set 3383# CONFIG_BACKLIGHT_ADP8870 is not set
3384# CONFIG_BACKLIGHT_LM3630 is not set
3385# CONFIG_BACKLIGHT_LM3639 is not set
3241# CONFIG_BACKLIGHT_LP855X is not set 3386# CONFIG_BACKLIGHT_LP855X is not set
3242# CONFIG_BACKLIGHT_OT200 is not set 3387# CONFIG_BACKLIGHT_OT200 is not set
3243 3388
@@ -3262,6 +3407,7 @@ CONFIG_SND_TIMER=m
3262CONFIG_SND_PCM=m 3407CONFIG_SND_PCM=m
3263CONFIG_SND_HWDEP=m 3408CONFIG_SND_HWDEP=m
3264CONFIG_SND_RAWMIDI=m 3409CONFIG_SND_RAWMIDI=m
3410CONFIG_SND_COMPRESS_OFFLOAD=m
3265CONFIG_SND_JACK=y 3411CONFIG_SND_JACK=y
3266CONFIG_SND_SEQUENCER=m 3412CONFIG_SND_SEQUENCER=m
3267CONFIG_SND_SEQ_DUMMY=m 3413CONFIG_SND_SEQ_DUMMY=m
@@ -3359,7 +3505,6 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0
3359CONFIG_SND_HDA_INPUT_JACK=y 3505CONFIG_SND_HDA_INPUT_JACK=y
3360# CONFIG_SND_HDA_PATCH_LOADER is not set 3506# CONFIG_SND_HDA_PATCH_LOADER is not set
3361CONFIG_SND_HDA_CODEC_REALTEK=y 3507CONFIG_SND_HDA_CODEC_REALTEK=y
3362CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
3363CONFIG_SND_HDA_CODEC_ANALOG=y 3508CONFIG_SND_HDA_CODEC_ANALOG=y
3364CONFIG_SND_HDA_CODEC_SIGMATEL=y 3509CONFIG_SND_HDA_CODEC_SIGMATEL=y
3365CONFIG_SND_HDA_CODEC_VIA=y 3510CONFIG_SND_HDA_CODEC_VIA=y
@@ -3368,10 +3513,11 @@ CONFIG_SND_HDA_CODEC_CIRRUS=y
3368CONFIG_SND_HDA_CODEC_CONEXANT=y 3513CONFIG_SND_HDA_CODEC_CONEXANT=y
3369CONFIG_SND_HDA_CODEC_CA0110=y 3514CONFIG_SND_HDA_CODEC_CA0110=y
3370CONFIG_SND_HDA_CODEC_CA0132=y 3515CONFIG_SND_HDA_CODEC_CA0132=y
3516# CONFIG_SND_HDA_CODEC_CA0132_DSP is not set
3371CONFIG_SND_HDA_CODEC_CMEDIA=y 3517CONFIG_SND_HDA_CODEC_CMEDIA=y
3372CONFIG_SND_HDA_CODEC_SI3054=y 3518CONFIG_SND_HDA_CODEC_SI3054=y
3373CONFIG_SND_HDA_GENERIC=y 3519CONFIG_SND_HDA_GENERIC=y
3374# CONFIG_SND_HDA_POWER_SAVE is not set 3520CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
3375CONFIG_SND_HDSP=m 3521CONFIG_SND_HDSP=m
3376CONFIG_SND_HDSPM=m 3522CONFIG_SND_HDSPM=m
3377CONFIG_SND_ICE1712=m 3523CONFIG_SND_ICE1712=m
@@ -3411,10 +3557,13 @@ CONFIG_SND_FIREWIRE=y
3411CONFIG_SND_FIREWIRE_LIB=m 3557CONFIG_SND_FIREWIRE_LIB=m
3412CONFIG_SND_FIREWIRE_SPEAKERS=m 3558CONFIG_SND_FIREWIRE_SPEAKERS=m
3413CONFIG_SND_ISIGHT=m 3559CONFIG_SND_ISIGHT=m
3560# CONFIG_SND_SCS1X is not set
3414CONFIG_SND_SOC=m 3561CONFIG_SND_SOC=m
3562# CONFIG_SND_ATMEL_SOC is not set
3415CONFIG_SND_SOC_I2C_AND_SPI=m 3563CONFIG_SND_SOC_I2C_AND_SPI=m
3416CONFIG_SND_SOC_ALL_CODECS=m 3564CONFIG_SND_SOC_ALL_CODECS=m
3417CONFIG_SND_SOC_WM_HUBS=m 3565CONFIG_SND_SOC_WM_HUBS=m
3566CONFIG_SND_SOC_WM_ADSP=m
3418CONFIG_SND_SOC_AD1836=m 3567CONFIG_SND_SOC_AD1836=m
3419CONFIG_SND_SOC_AD193X=m 3568CONFIG_SND_SOC_AD193X=m
3420CONFIG_SND_SOC_AD73311=m 3569CONFIG_SND_SOC_AD73311=m
@@ -3426,9 +3575,11 @@ CONFIG_SND_SOC_AK4535=m
3426CONFIG_SND_SOC_AK4641=m 3575CONFIG_SND_SOC_AK4641=m
3427CONFIG_SND_SOC_AK4642=m 3576CONFIG_SND_SOC_AK4642=m
3428CONFIG_SND_SOC_AK4671=m 3577CONFIG_SND_SOC_AK4671=m
3578CONFIG_SND_SOC_AK5386=m
3429CONFIG_SND_SOC_ALC5623=m 3579CONFIG_SND_SOC_ALC5623=m
3430CONFIG_SND_SOC_ALC5632=m 3580CONFIG_SND_SOC_ALC5632=m
3431CONFIG_SND_SOC_CS42L51=m 3581CONFIG_SND_SOC_CS42L51=m
3582CONFIG_SND_SOC_CS42L52=m
3432CONFIG_SND_SOC_CS42L73=m 3583CONFIG_SND_SOC_CS42L73=m
3433CONFIG_SND_SOC_CS4270=m 3584CONFIG_SND_SOC_CS4270=m
3434CONFIG_SND_SOC_CS4271=m 3585CONFIG_SND_SOC_CS4271=m
@@ -3436,8 +3587,14 @@ CONFIG_SND_SOC_CX20442=m
3436CONFIG_SND_SOC_JZ4740_CODEC=m 3587CONFIG_SND_SOC_JZ4740_CODEC=m
3437CONFIG_SND_SOC_L3=m 3588CONFIG_SND_SOC_L3=m
3438CONFIG_SND_SOC_DA7210=m 3589CONFIG_SND_SOC_DA7210=m
3590CONFIG_SND_SOC_DA7213=m
3591CONFIG_SND_SOC_DA732X=m
3592CONFIG_SND_SOC_DA9055=m
3439CONFIG_SND_SOC_DFBMCS320=m 3593CONFIG_SND_SOC_DFBMCS320=m
3594CONFIG_SND_SOC_ISABELLE=m
3595CONFIG_SND_SOC_LM49453=m
3440CONFIG_SND_SOC_MAX98088=m 3596CONFIG_SND_SOC_MAX98088=m
3597CONFIG_SND_SOC_MAX98090=m
3441CONFIG_SND_SOC_MAX98095=m 3598CONFIG_SND_SOC_MAX98095=m
3442CONFIG_SND_SOC_MAX9850=m 3599CONFIG_SND_SOC_MAX9850=m
3443CONFIG_SND_SOC_PCM3008=m 3600CONFIG_SND_SOC_PCM3008=m
@@ -3446,6 +3603,8 @@ CONFIG_SND_SOC_SGTL5000=m
3446CONFIG_SND_SOC_SPDIF=m 3603CONFIG_SND_SOC_SPDIF=m
3447CONFIG_SND_SOC_SSM2602=m 3604CONFIG_SND_SOC_SSM2602=m
3448CONFIG_SND_SOC_STA32X=m 3605CONFIG_SND_SOC_STA32X=m
3606CONFIG_SND_SOC_STA529=m
3607CONFIG_SND_SOC_TAS5086=m
3449CONFIG_SND_SOC_TLV320AIC23=m 3608CONFIG_SND_SOC_TLV320AIC23=m
3450CONFIG_SND_SOC_TLV320AIC26=m 3609CONFIG_SND_SOC_TLV320AIC26=m
3451CONFIG_SND_SOC_TLV320AIC32X4=m 3610CONFIG_SND_SOC_TLV320AIC32X4=m
@@ -3454,6 +3613,7 @@ CONFIG_SND_SOC_TLV320DAC33=m
3454CONFIG_SND_SOC_UDA134X=m 3613CONFIG_SND_SOC_UDA134X=m
3455CONFIG_SND_SOC_UDA1380=m 3614CONFIG_SND_SOC_UDA1380=m
3456CONFIG_SND_SOC_WL1273=m 3615CONFIG_SND_SOC_WL1273=m
3616CONFIG_SND_SOC_WM0010=m
3457CONFIG_SND_SOC_WM1250_EV1=m 3617CONFIG_SND_SOC_WM1250_EV1=m
3458CONFIG_SND_SOC_WM2000=m 3618CONFIG_SND_SOC_WM2000=m
3459CONFIG_SND_SOC_WM2200=m 3619CONFIG_SND_SOC_WM2200=m
@@ -3497,25 +3657,19 @@ CONFIG_SND_SOC_WM9090=m
3497CONFIG_SND_SOC_LM4857=m 3657CONFIG_SND_SOC_LM4857=m
3498CONFIG_SND_SOC_MAX9768=m 3658CONFIG_SND_SOC_MAX9768=m
3499CONFIG_SND_SOC_MAX9877=m 3659CONFIG_SND_SOC_MAX9877=m
3660CONFIG_SND_SOC_ML26124=m
3500CONFIG_SND_SOC_TPA6130A2=m 3661CONFIG_SND_SOC_TPA6130A2=m
3662# CONFIG_SND_SIMPLE_CARD is not set
3501# CONFIG_SOUND_PRIME is not set 3663# CONFIG_SOUND_PRIME is not set
3502CONFIG_AC97_BUS=m 3664CONFIG_AC97_BUS=m
3503CONFIG_HID_SUPPORT=y
3504CONFIG_HID=m
3505CONFIG_HIDRAW=y
3506 3665
3507# 3666#
3508# USB Input Devices 3667# HID support
3509# 3668#
3510CONFIG_USB_HID=m 3669CONFIG_HID=m
3511# CONFIG_HID_PID is not set 3670CONFIG_HIDRAW=y
3512# CONFIG_USB_HIDDEV is not set 3671# CONFIG_UHID is not set
3513 3672CONFIG_HID_GENERIC=m
3514#
3515# USB HID Boot Protocol drivers
3516#
3517CONFIG_USB_KBD=m
3518CONFIG_USB_MOUSE=m
3519 3673
3520# 3674#
3521# Special HID drivers 3675# Special HID drivers
@@ -3523,6 +3677,8 @@ CONFIG_USB_MOUSE=m
3523# CONFIG_HID_A4TECH is not set 3677# CONFIG_HID_A4TECH is not set
3524# CONFIG_HID_ACRUX is not set 3678# CONFIG_HID_ACRUX is not set
3525CONFIG_HID_APPLE=m 3679CONFIG_HID_APPLE=m
3680# CONFIG_HID_APPLEIR is not set
3681# CONFIG_HID_AUREAL is not set
3526# CONFIG_HID_BELKIN is not set 3682# CONFIG_HID_BELKIN is not set
3527# CONFIG_HID_CHERRY is not set 3683# CONFIG_HID_CHERRY is not set
3528# CONFIG_HID_CHICONY is not set 3684# CONFIG_HID_CHICONY is not set
@@ -3538,9 +3694,11 @@ CONFIG_HID_KEYTOUCH=m
3538# CONFIG_HID_UCLOGIC is not set 3694# CONFIG_HID_UCLOGIC is not set
3539# CONFIG_HID_WALTOP is not set 3695# CONFIG_HID_WALTOP is not set
3540# CONFIG_HID_GYRATION is not set 3696# CONFIG_HID_GYRATION is not set
3697# CONFIG_HID_ICADE is not set
3541# CONFIG_HID_TWINHAN is not set 3698# CONFIG_HID_TWINHAN is not set
3542# CONFIG_HID_KENSINGTON is not set 3699# CONFIG_HID_KENSINGTON is not set
3543CONFIG_HID_LCPOWER=m 3700CONFIG_HID_LCPOWER=m
3701# CONFIG_HID_LENOVO_TPKBD is not set
3544# CONFIG_HID_LOGITECH is not set 3702# CONFIG_HID_LOGITECH is not set
3545CONFIG_HID_MAGICMOUSE=m 3703CONFIG_HID_MAGICMOUSE=m
3546# CONFIG_HID_MICROSOFT is not set 3704# CONFIG_HID_MICROSOFT is not set
@@ -3556,22 +3714,44 @@ CONFIG_HID_PICOLCD_BACKLIGHT=y
3556CONFIG_HID_PICOLCD_LCD=y 3714CONFIG_HID_PICOLCD_LCD=y
3557CONFIG_HID_PICOLCD_LEDS=y 3715CONFIG_HID_PICOLCD_LEDS=y
3558CONFIG_HID_PRIMAX=m 3716CONFIG_HID_PRIMAX=m
3717# CONFIG_HID_PS3REMOTE is not set
3559CONFIG_HID_ROCCAT=m 3718CONFIG_HID_ROCCAT=m
3560# CONFIG_HID_SAITEK is not set 3719# CONFIG_HID_SAITEK is not set
3561# CONFIG_HID_SAMSUNG is not set 3720# CONFIG_HID_SAMSUNG is not set
3562CONFIG_HID_SONY=m 3721CONFIG_HID_SONY=m
3563CONFIG_HID_SPEEDLINK=m 3722CONFIG_HID_SPEEDLINK=m
3723# CONFIG_HID_STEELSERIES is not set
3564# CONFIG_HID_SUNPLUS is not set 3724# CONFIG_HID_SUNPLUS is not set
3565# CONFIG_HID_GREENASIA is not set 3725# CONFIG_HID_GREENASIA is not set
3566CONFIG_HID_HYPERV_MOUSE=m 3726CONFIG_HID_HYPERV_MOUSE=m
3567# CONFIG_HID_SMARTJOYPLUS is not set 3727# CONFIG_HID_SMARTJOYPLUS is not set
3568# CONFIG_HID_TIVO is not set 3728# CONFIG_HID_TIVO is not set
3569# CONFIG_HID_TOPSEED is not set 3729# CONFIG_HID_TOPSEED is not set
3730# CONFIG_HID_THINGM is not set
3570# CONFIG_HID_THRUSTMASTER is not set 3731# CONFIG_HID_THRUSTMASTER is not set
3571# CONFIG_HID_WACOM is not set 3732# CONFIG_HID_WACOM is not set
3572# CONFIG_HID_WIIMOTE is not set 3733# CONFIG_HID_WIIMOTE is not set
3573# CONFIG_HID_ZEROPLUS is not set 3734# CONFIG_HID_ZEROPLUS is not set
3574CONFIG_HID_ZYDACRON=m 3735CONFIG_HID_ZYDACRON=m
3736# CONFIG_HID_SENSOR_HUB is not set
3737
3738#
3739# USB HID support
3740#
3741CONFIG_USB_HID=m
3742# CONFIG_HID_PID is not set
3743# CONFIG_USB_HIDDEV is not set
3744
3745#
3746# USB HID Boot Protocol drivers
3747#
3748CONFIG_USB_KBD=m
3749CONFIG_USB_MOUSE=m
3750
3751#
3752# I2C HID support
3753#
3754# CONFIG_I2C_HID is not set
3575CONFIG_USB_ARCH_HAS_OHCI=y 3755CONFIG_USB_ARCH_HAS_OHCI=y
3576CONFIG_USB_ARCH_HAS_EHCI=y 3756CONFIG_USB_ARCH_HAS_EHCI=y
3577CONFIG_USB_ARCH_HAS_XHCI=y 3757CONFIG_USB_ARCH_HAS_XHCI=y
@@ -3585,8 +3765,7 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
3585# 3765#
3586# Miscellaneous USB options 3766# Miscellaneous USB options
3587# 3767#
3588CONFIG_USB_DEVICEFS=y 3768CONFIG_USB_DEFAULT_PERSIST=y
3589CONFIG_USB_DEVICE_CLASS=y
3590# CONFIG_USB_DYNAMIC_MINORS is not set 3769# CONFIG_USB_DYNAMIC_MINORS is not set
3591# CONFIG_USB_OTG_WHITELIST is not set 3770# CONFIG_USB_OTG_WHITELIST is not set
3592# CONFIG_USB_OTG_BLACKLIST_HUB is not set 3771# CONFIG_USB_OTG_BLACKLIST_HUB is not set
@@ -3603,6 +3782,8 @@ CONFIG_USB_XHCI_HCD=m
3603CONFIG_USB_EHCI_HCD=m 3782CONFIG_USB_EHCI_HCD=m
3604# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 3783# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
3605# CONFIG_USB_EHCI_TT_NEWSCHED is not set 3784# CONFIG_USB_EHCI_TT_NEWSCHED is not set
3785CONFIG_USB_EHCI_PCI=m
3786CONFIG_USB_EHCI_HCD_PLATFORM=m
3606CONFIG_USB_OXU210HP_HCD=m 3787CONFIG_USB_OXU210HP_HCD=m
3607CONFIG_USB_ISP116X_HCD=m 3788CONFIG_USB_ISP116X_HCD=m
3608CONFIG_USB_ISP1760_HCD=m 3789CONFIG_USB_ISP1760_HCD=m
@@ -3610,7 +3791,6 @@ CONFIG_USB_ISP1362_HCD=m
3610CONFIG_USB_OHCI_HCD=m 3791CONFIG_USB_OHCI_HCD=m
3611CONFIG_USB_OHCI_HCD_SSB=y 3792CONFIG_USB_OHCI_HCD_SSB=y
3612CONFIG_USB_OHCI_HCD_PLATFORM=y 3793CONFIG_USB_OHCI_HCD_PLATFORM=y
3613CONFIG_USB_EHCI_HCD_PLATFORM=y
3614# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 3794# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
3615# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 3795# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
3616CONFIG_USB_OHCI_LITTLE_ENDIAN=y 3796CONFIG_USB_OHCI_LITTLE_ENDIAN=y
@@ -3618,6 +3798,7 @@ CONFIG_USB_UHCI_HCD=m
3618CONFIG_USB_SL811_HCD=m 3798CONFIG_USB_SL811_HCD=m
3619CONFIG_USB_SL811_HCD_ISO=y 3799CONFIG_USB_SL811_HCD_ISO=y
3620CONFIG_USB_R8A66597_HCD=m 3800CONFIG_USB_R8A66597_HCD=m
3801CONFIG_USB_HCD_SSB=m
3621 3802
3622# 3803#
3623# USB Device Class drivers 3804# USB Device Class drivers
@@ -3649,20 +3830,20 @@ CONFIG_USB_STORAGE_ONETOUCH=m
3649CONFIG_USB_STORAGE_KARMA=m 3830CONFIG_USB_STORAGE_KARMA=m
3650CONFIG_USB_STORAGE_CYPRESS_ATACB=m 3831CONFIG_USB_STORAGE_CYPRESS_ATACB=m
3651CONFIG_USB_STORAGE_ENE_UB6250=m 3832CONFIG_USB_STORAGE_ENE_UB6250=m
3652CONFIG_USB_LIBUSUAL=y
3653 3833
3654# 3834#
3655# USB Imaging devices 3835# USB Imaging devices
3656# 3836#
3657# CONFIG_USB_MDC800 is not set 3837# CONFIG_USB_MDC800 is not set
3658# CONFIG_USB_MICROTEK is not set 3838# CONFIG_USB_MICROTEK is not set
3839# CONFIG_USB_DWC3 is not set
3840# CONFIG_USB_CHIPIDEA is not set
3659 3841
3660# 3842#
3661# USB port drivers 3843# USB port drivers
3662# 3844#
3663CONFIG_USB_USS720=m 3845CONFIG_USB_USS720=m
3664CONFIG_USB_SERIAL=m 3846CONFIG_USB_SERIAL=m
3665CONFIG_USB_EZUSB=y
3666CONFIG_USB_SERIAL_GENERIC=y 3847CONFIG_USB_SERIAL_GENERIC=y
3667CONFIG_USB_SERIAL_AIRCABLE=m 3848CONFIG_USB_SERIAL_AIRCABLE=m
3668CONFIG_USB_SERIAL_ARK3116=m 3849CONFIG_USB_SERIAL_ARK3116=m
@@ -3714,8 +3895,12 @@ CONFIG_USB_SERIAL_OPTION=m
3714CONFIG_USB_SERIAL_OMNINET=m 3895CONFIG_USB_SERIAL_OMNINET=m
3715CONFIG_USB_SERIAL_OPTICON=m 3896CONFIG_USB_SERIAL_OPTICON=m
3716CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m 3897CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
3898# CONFIG_USB_SERIAL_XSENS_MT is not set
3717CONFIG_USB_SERIAL_ZIO=m 3899CONFIG_USB_SERIAL_ZIO=m
3900# CONFIG_USB_SERIAL_WISHBONE is not set
3901# CONFIG_USB_SERIAL_ZTE is not set
3718# CONFIG_USB_SERIAL_SSU100 is not set 3902# CONFIG_USB_SERIAL_SSU100 is not set
3903# CONFIG_USB_SERIAL_QT2 is not set
3719# CONFIG_USB_SERIAL_DEBUG is not set 3904# CONFIG_USB_SERIAL_DEBUG is not set
3720 3905
3721# 3906#
@@ -3741,19 +3926,24 @@ CONFIG_USB_IDMOUSE=m
3741CONFIG_USB_TEST=m 3926CONFIG_USB_TEST=m
3742CONFIG_USB_ISIGHTFW=m 3927CONFIG_USB_ISIGHTFW=m
3743# CONFIG_USB_YUREX is not set 3928# CONFIG_USB_YUREX is not set
3929CONFIG_USB_EZUSB_FX2=m
3930# CONFIG_USB_HSIC_USB3503 is not set
3744CONFIG_USB_ATM=m 3931CONFIG_USB_ATM=m
3745CONFIG_USB_SPEEDTOUCH=m 3932CONFIG_USB_SPEEDTOUCH=m
3746CONFIG_USB_CXACRU=m 3933CONFIG_USB_CXACRU=m
3747CONFIG_USB_UEAGLEATM=m 3934CONFIG_USB_UEAGLEATM=m
3748CONFIG_USB_XUSBATM=m 3935CONFIG_USB_XUSBATM=m
3749# CONFIG_USB_GADGET is not set 3936CONFIG_USB_PHY=y
3750
3751#
3752# OTG and related infrastructure
3753#
3754CONFIG_USB_OTG_UTILS=y
3755CONFIG_USB_GPIO_VBUS=m
3756CONFIG_NOP_USB_XCEIV=m 3937CONFIG_NOP_USB_XCEIV=m
3938# CONFIG_OMAP_CONTROL_USB is not set
3939# CONFIG_OMAP_USB3 is not set
3940# CONFIG_SAMSUNG_USBPHY is not set
3941# CONFIG_SAMSUNG_USB2PHY is not set
3942# CONFIG_SAMSUNG_USB3PHY is not set
3943CONFIG_USB_GPIO_VBUS=m
3944# CONFIG_USB_ISP1301 is not set
3945# CONFIG_USB_RCAR_PHY is not set
3946# CONFIG_USB_GADGET is not set
3757# CONFIG_UWB is not set 3947# CONFIG_UWB is not set
3758CONFIG_MMC=m 3948CONFIG_MMC=m
3759# CONFIG_MMC_DEBUG is not set 3949# CONFIG_MMC_DEBUG is not set
@@ -3775,6 +3965,7 @@ CONFIG_MMC_TEST=m
3775CONFIG_MMC_SDHCI=m 3965CONFIG_MMC_SDHCI=m
3776CONFIG_MMC_SDHCI_PCI=m 3966CONFIG_MMC_SDHCI_PCI=m
3777CONFIG_MMC_RICOH_MMC=y 3967CONFIG_MMC_RICOH_MMC=y
3968# CONFIG_MMC_SDHCI_ACPI is not set
3778CONFIG_MMC_SDHCI_PLTFM=m 3969CONFIG_MMC_SDHCI_PLTFM=m
3779CONFIG_MMC_WBSD=m 3970CONFIG_MMC_WBSD=m
3780CONFIG_MMC_TIFM_SD=m 3971CONFIG_MMC_TIFM_SD=m
@@ -3804,12 +3995,14 @@ CONFIG_LEDS_CLASS=y
3804# LED drivers 3995# LED drivers
3805# 3996#
3806CONFIG_LEDS_LM3530=m 3997CONFIG_LEDS_LM3530=m
3998# CONFIG_LEDS_LM3642 is not set
3807CONFIG_LEDS_PCA9532=m 3999CONFIG_LEDS_PCA9532=m
3808# CONFIG_LEDS_PCA9532_GPIO is not set 4000# CONFIG_LEDS_PCA9532_GPIO is not set
3809CONFIG_LEDS_GPIO=m 4001CONFIG_LEDS_GPIO=m
3810CONFIG_LEDS_LP3944=m 4002CONFIG_LEDS_LP3944=m
3811# CONFIG_LEDS_LP5521 is not set 4003# CONFIG_LEDS_LP5521 is not set
3812# CONFIG_LEDS_LP5523 is not set 4004# CONFIG_LEDS_LP5523 is not set
4005# CONFIG_LEDS_LP5562 is not set
3813CONFIG_LEDS_CLEVO_MAIL=m 4006CONFIG_LEDS_CLEVO_MAIL=m
3814CONFIG_LEDS_PCA955X=m 4007CONFIG_LEDS_PCA955X=m
3815# CONFIG_LEDS_PCA9633 is not set 4008# CONFIG_LEDS_PCA9633 is not set
@@ -3819,21 +4012,27 @@ CONFIG_LEDS_INTEL_SS4200=m
3819CONFIG_LEDS_LT3593=m 4012CONFIG_LEDS_LT3593=m
3820CONFIG_LEDS_DELL_NETBOOKS=m 4013CONFIG_LEDS_DELL_NETBOOKS=m
3821# CONFIG_LEDS_TCA6507 is not set 4014# CONFIG_LEDS_TCA6507 is not set
4015# CONFIG_LEDS_LM355x is not set
3822# CONFIG_LEDS_OT200 is not set 4016# CONFIG_LEDS_OT200 is not set
3823CONFIG_LEDS_TRIGGERS=y 4017# CONFIG_LEDS_BLINKM is not set
3824 4018
3825# 4019#
3826# LED Triggers 4020# LED Triggers
3827# 4021#
4022CONFIG_LEDS_TRIGGERS=y
3828CONFIG_LEDS_TRIGGER_TIMER=m 4023CONFIG_LEDS_TRIGGER_TIMER=m
4024# CONFIG_LEDS_TRIGGER_ONESHOT is not set
3829CONFIG_LEDS_TRIGGER_HEARTBEAT=m 4025CONFIG_LEDS_TRIGGER_HEARTBEAT=m
3830CONFIG_LEDS_TRIGGER_BACKLIGHT=m 4026CONFIG_LEDS_TRIGGER_BACKLIGHT=m
4027# CONFIG_LEDS_TRIGGER_CPU is not set
3831CONFIG_LEDS_TRIGGER_GPIO=m 4028CONFIG_LEDS_TRIGGER_GPIO=m
3832CONFIG_LEDS_TRIGGER_DEFAULT_ON=m 4029CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
3833 4030
3834# 4031#
3835# iptables trigger is under Netfilter config (LED target) 4032# iptables trigger is under Netfilter config (LED target)
3836# 4033#
4034# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
4035# CONFIG_LEDS_TRIGGER_CAMERA is not set
3837CONFIG_ACCESSIBILITY=y 4036CONFIG_ACCESSIBILITY=y
3838# CONFIG_A11Y_BRAILLE_CONSOLE is not set 4037# CONFIG_A11Y_BRAILLE_CONSOLE is not set
3839CONFIG_INFINIBAND=m 4038CONFIG_INFINIBAND=m
@@ -3851,16 +4050,19 @@ CONFIG_INFINIBAND_CXGB4=m
3851CONFIG_MLX4_INFINIBAND=m 4050CONFIG_MLX4_INFINIBAND=m
3852CONFIG_INFINIBAND_NES=m 4051CONFIG_INFINIBAND_NES=m
3853# CONFIG_INFINIBAND_NES_DEBUG is not set 4052# CONFIG_INFINIBAND_NES_DEBUG is not set
4053# CONFIG_INFINIBAND_OCRDMA is not set
3854CONFIG_INFINIBAND_IPOIB=m 4054CONFIG_INFINIBAND_IPOIB=m
3855# CONFIG_INFINIBAND_IPOIB_CM is not set 4055# CONFIG_INFINIBAND_IPOIB_CM is not set
3856# CONFIG_INFINIBAND_IPOIB_DEBUG is not set 4056# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
3857CONFIG_INFINIBAND_SRP=m 4057CONFIG_INFINIBAND_SRP=m
3858CONFIG_INFINIBAND_SRPT=m 4058CONFIG_INFINIBAND_SRPT=m
3859CONFIG_INFINIBAND_ISER=m 4059CONFIG_INFINIBAND_ISER=m
4060CONFIG_INFINIBAND_ISERT=m
3860# CONFIG_EDAC is not set 4061# CONFIG_EDAC is not set
3861CONFIG_RTC_LIB=y 4062CONFIG_RTC_LIB=y
3862CONFIG_RTC_CLASS=y 4063CONFIG_RTC_CLASS=y
3863CONFIG_RTC_HCTOSYS=y 4064CONFIG_RTC_HCTOSYS=y
4065CONFIG_RTC_SYSTOHC=y
3864CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 4066CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
3865# CONFIG_RTC_DEBUG is not set 4067# CONFIG_RTC_DEBUG is not set
3866 4068
@@ -3885,6 +4087,7 @@ CONFIG_RTC_DRV_RS5C372=m
3885CONFIG_RTC_DRV_ISL1208=m 4087CONFIG_RTC_DRV_ISL1208=m
3886# CONFIG_RTC_DRV_ISL12022 is not set 4088# CONFIG_RTC_DRV_ISL12022 is not set
3887CONFIG_RTC_DRV_X1205=m 4089CONFIG_RTC_DRV_X1205=m
4090# CONFIG_RTC_DRV_PCF8523 is not set
3888CONFIG_RTC_DRV_PCF8563=m 4091CONFIG_RTC_DRV_PCF8563=m
3889CONFIG_RTC_DRV_PCF8583=m 4092CONFIG_RTC_DRV_PCF8583=m
3890CONFIG_RTC_DRV_M41T80=m 4093CONFIG_RTC_DRV_M41T80=m
@@ -3909,6 +4112,7 @@ CONFIG_RTC_DRV_R9701=m
3909CONFIG_RTC_DRV_RS5C348=m 4112CONFIG_RTC_DRV_RS5C348=m
3910CONFIG_RTC_DRV_DS3234=m 4113CONFIG_RTC_DRV_DS3234=m
3911CONFIG_RTC_DRV_PCF2123=m 4114CONFIG_RTC_DRV_PCF2123=m
4115# CONFIG_RTC_DRV_RX4581 is not set
3912 4116
3913# 4117#
3914# Platform RTC drivers 4118# Platform RTC drivers
@@ -3926,10 +4130,16 @@ CONFIG_RTC_DRV_MSM6242=m
3926CONFIG_RTC_DRV_BQ4802=m 4130CONFIG_RTC_DRV_BQ4802=m
3927CONFIG_RTC_DRV_RP5C01=m 4131CONFIG_RTC_DRV_RP5C01=m
3928CONFIG_RTC_DRV_V3020=m 4132CONFIG_RTC_DRV_V3020=m
4133# CONFIG_RTC_DRV_DS2404 is not set
3929 4134
3930# 4135#
3931# on-CPU RTC drivers 4136# on-CPU RTC drivers
3932# 4137#
4138
4139#
4140# HID Sensor RTC drivers
4141#
4142# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
3933CONFIG_DMADEVICES=y 4143CONFIG_DMADEVICES=y
3934# CONFIG_DMADEVICES_DEBUG is not set 4144# CONFIG_DMADEVICES_DEBUG is not set
3935 4145
@@ -3938,9 +4148,11 @@ CONFIG_DMADEVICES=y
3938# 4148#
3939# CONFIG_INTEL_MID_DMAC is not set 4149# CONFIG_INTEL_MID_DMAC is not set
3940CONFIG_INTEL_IOATDMA=m 4150CONFIG_INTEL_IOATDMA=m
4151# CONFIG_DW_DMAC is not set
3941CONFIG_TIMB_DMA=m 4152CONFIG_TIMB_DMA=m
3942CONFIG_PCH_DMA=m 4153CONFIG_PCH_DMA=m
3943CONFIG_DMA_ENGINE=y 4154CONFIG_DMA_ENGINE=y
4155CONFIG_DMA_ACPI=y
3944 4156
3945# 4157#
3946# DMA Clients 4158# DMA Clients
@@ -3959,12 +4171,14 @@ CONFIG_UIO=m
3959CONFIG_UIO_CIF=m 4171CONFIG_UIO_CIF=m
3960CONFIG_UIO_PDRV=m 4172CONFIG_UIO_PDRV=m
3961CONFIG_UIO_PDRV_GENIRQ=m 4173CONFIG_UIO_PDRV_GENIRQ=m
4174# CONFIG_UIO_DMEM_GENIRQ is not set
3962CONFIG_UIO_AEC=m 4175CONFIG_UIO_AEC=m
3963CONFIG_UIO_SERCOS3=m 4176CONFIG_UIO_SERCOS3=m
3964# CONFIG_UIO_PCI_GENERIC is not set 4177# CONFIG_UIO_PCI_GENERIC is not set
3965CONFIG_UIO_NETX=m 4178CONFIG_UIO_NETX=m
4179# CONFIG_VFIO is not set
4180CONFIG_VIRT_DRIVERS=y
3966CONFIG_VIRTIO=m 4181CONFIG_VIRTIO=m
3967CONFIG_VIRTIO_RING=m
3968 4182
3969# 4183#
3970# Virtio drivers 4184# Virtio drivers
@@ -3972,16 +4186,54 @@ CONFIG_VIRTIO_RING=m
3972CONFIG_VIRTIO_PCI=m 4186CONFIG_VIRTIO_PCI=m
3973CONFIG_VIRTIO_BALLOON=m 4187CONFIG_VIRTIO_BALLOON=m
3974CONFIG_VIRTIO_MMIO=m 4188CONFIG_VIRTIO_MMIO=m
4189# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
3975 4190
3976# 4191#
3977# Microsoft Hyper-V guest support 4192# Microsoft Hyper-V guest support
3978# 4193#
3979CONFIG_HYPERV=m 4194CONFIG_HYPERV=m
3980CONFIG_HYPERV_UTILS=m 4195CONFIG_HYPERV_UTILS=m
4196CONFIG_HYPERV_BALLOON=m
3981# CONFIG_STAGING is not set 4197# CONFIG_STAGING is not set
3982# CONFIG_X86_PLATFORM_DEVICES is not set 4198CONFIG_X86_PLATFORM_DEVICES=y
4199# CONFIG_ACER_WMI is not set
4200# CONFIG_ACERHDF is not set
4201# CONFIG_ASUS_LAPTOP is not set
4202# CONFIG_CHROMEOS_LAPTOP is not set
4203# CONFIG_DELL_LAPTOP is not set
4204# CONFIG_DELL_WMI is not set
4205CONFIG_DELL_WMI_AIO=m
4206# CONFIG_FUJITSU_LAPTOP is not set
4207# CONFIG_FUJITSU_TABLET is not set
4208# CONFIG_AMILO_RFKILL is not set
4209# CONFIG_TC1100_WMI is not set
4210# CONFIG_HP_ACCEL is not set
4211# CONFIG_HP_WMI is not set
4212# CONFIG_MSI_LAPTOP is not set
4213# CONFIG_PANASONIC_LAPTOP is not set
4214# CONFIG_COMPAL_LAPTOP is not set
4215# CONFIG_SONY_LAPTOP is not set
4216# CONFIG_IDEAPAD_LAPTOP is not set
4217# CONFIG_THINKPAD_ACPI is not set
4218# CONFIG_SENSORS_HDAPS is not set
4219# CONFIG_INTEL_MENLOW is not set
4220# CONFIG_EEEPC_LAPTOP is not set
4221# CONFIG_ASUS_WMI is not set
3983CONFIG_ACPI_WMI=m 4222CONFIG_ACPI_WMI=m
4223# CONFIG_MSI_WMI is not set
4224# CONFIG_TOPSTAR_LAPTOP is not set
4225# CONFIG_ACPI_TOSHIBA is not set
4226# CONFIG_TOSHIBA_BT_RFKILL is not set
4227# CONFIG_ACPI_CMPC is not set
4228# CONFIG_INTEL_IPS is not set
4229# CONFIG_IBM_RTL is not set
4230# CONFIG_XO15_EBOOK is not set
4231# CONFIG_SAMSUNG_LAPTOP is not set
3984CONFIG_MXM_WMI=m 4232CONFIG_MXM_WMI=m
4233# CONFIG_INTEL_OAKTRAIL is not set
4234# CONFIG_SAMSUNG_Q10 is not set
4235# CONFIG_APPLE_GMUX is not set
4236# CONFIG_PVPANIC is not set
3985 4237
3986# 4238#
3987# Hardware Spinlock drivers 4239# Hardware Spinlock drivers
@@ -3990,6 +4242,7 @@ CONFIG_CLKSRC_I8253=y
3990CONFIG_CLKEVT_I8253=y 4242CONFIG_CLKEVT_I8253=y
3991CONFIG_I8253_LOCK=y 4243CONFIG_I8253_LOCK=y
3992CONFIG_CLKBLD_I8253=y 4244CONFIG_CLKBLD_I8253=y
4245# CONFIG_MAILBOX is not set
3993CONFIG_IOMMU_API=y 4246CONFIG_IOMMU_API=y
3994CONFIG_IOMMU_SUPPORT=y 4247CONFIG_IOMMU_SUPPORT=y
3995CONFIG_DMAR_TABLE=y 4248CONFIG_DMAR_TABLE=y
@@ -3998,14 +4251,21 @@ CONFIG_INTEL_IOMMU=y
3998CONFIG_INTEL_IOMMU_FLOPPY_WA=y 4251CONFIG_INTEL_IOMMU_FLOPPY_WA=y
3999 4252
4000# 4253#
4001# Remoteproc drivers (EXPERIMENTAL) 4254# Remoteproc drivers
4002# 4255#
4256# CONFIG_STE_MODEM_RPROC is not set
4003 4257
4004# 4258#
4005# Rpmsg drivers (EXPERIMENTAL) 4259# Rpmsg drivers
4006# 4260#
4007CONFIG_VIRT_DRIVERS=y
4008# CONFIG_PM_DEVFREQ is not set 4261# CONFIG_PM_DEVFREQ is not set
4262# CONFIG_EXTCON is not set
4263# CONFIG_MEMORY is not set
4264# CONFIG_IIO is not set
4265# CONFIG_VME_BUS is not set
4266# CONFIG_PWM is not set
4267# CONFIG_IPACK_BUS is not set
4268# CONFIG_RESET_CONTROLLER is not set
4009 4269
4010# 4270#
4011# Firmware Drivers 4271# Firmware Drivers
@@ -4035,7 +4295,6 @@ CONFIG_EXT3_FS_XATTR=y
4035CONFIG_EXT3_FS_POSIX_ACL=y 4295CONFIG_EXT3_FS_POSIX_ACL=y
4036CONFIG_EXT3_FS_SECURITY=y 4296CONFIG_EXT3_FS_SECURITY=y
4037CONFIG_EXT4_FS=m 4297CONFIG_EXT4_FS=m
4038CONFIG_EXT4_FS_XATTR=y
4039CONFIG_EXT4_FS_POSIX_ACL=y 4298CONFIG_EXT4_FS_POSIX_ACL=y
4040CONFIG_EXT4_FS_SECURITY=y 4299CONFIG_EXT4_FS_SECURITY=y
4041# CONFIG_EXT4_DEBUG is not set 4300# CONFIG_EXT4_DEBUG is not set
@@ -4068,6 +4327,8 @@ CONFIG_OCFS2_DEBUG_MASKLOG=y
4068CONFIG_BTRFS_FS=m 4327CONFIG_BTRFS_FS=m
4069CONFIG_BTRFS_FS_POSIX_ACL=y 4328CONFIG_BTRFS_FS_POSIX_ACL=y
4070# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set 4329# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
4330# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
4331# CONFIG_BTRFS_DEBUG is not set
4071CONFIG_NILFS2_FS=m 4332CONFIG_NILFS2_FS=m
4072CONFIG_FS_POSIX_ACL=y 4333CONFIG_FS_POSIX_ACL=y
4073CONFIG_EXPORTFS=m 4334CONFIG_EXPORTFS=m
@@ -4140,6 +4401,7 @@ CONFIG_MISC_FILESYSTEMS=y
4140# CONFIG_ADFS_FS is not set 4401# CONFIG_ADFS_FS is not set
4141# CONFIG_AFFS_FS is not set 4402# CONFIG_AFFS_FS is not set
4142CONFIG_ECRYPT_FS=m 4403CONFIG_ECRYPT_FS=m
4404# CONFIG_ECRYPT_FS_MESSAGING is not set
4143CONFIG_HFS_FS=m 4405CONFIG_HFS_FS=m
4144CONFIG_HFSPLUS_FS=m 4406CONFIG_HFSPLUS_FS=m
4145# CONFIG_BEFS_FS is not set 4407# CONFIG_BEFS_FS is not set
@@ -4163,11 +4425,9 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
4163# CONFIG_JFFS2_CMODE_SIZE is not set 4425# CONFIG_JFFS2_CMODE_SIZE is not set
4164# CONFIG_JFFS2_CMODE_FAVOURLZO is not set 4426# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
4165CONFIG_UBIFS_FS=m 4427CONFIG_UBIFS_FS=m
4166CONFIG_UBIFS_FS_XATTR=y
4167# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set 4428# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
4168CONFIG_UBIFS_FS_LZO=y 4429CONFIG_UBIFS_FS_LZO=y
4169CONFIG_UBIFS_FS_ZLIB=y 4430CONFIG_UBIFS_FS_ZLIB=y
4170# CONFIG_UBIFS_FS_DEBUG is not set
4171CONFIG_LOGFS=m 4431CONFIG_LOGFS=m
4172CONFIG_CRAMFS=m 4432CONFIG_CRAMFS=m
4173CONFIG_SQUASHFS=m 4433CONFIG_SQUASHFS=m
@@ -4190,18 +4450,26 @@ CONFIG_ROMFS_BACKED_BY_BLOCK=y
4190# CONFIG_ROMFS_BACKED_BY_BOTH is not set 4450# CONFIG_ROMFS_BACKED_BY_BOTH is not set
4191CONFIG_ROMFS_ON_BLOCK=y 4451CONFIG_ROMFS_ON_BLOCK=y
4192CONFIG_PSTORE=y 4452CONFIG_PSTORE=y
4453# CONFIG_PSTORE_CONSOLE is not set
4454# CONFIG_PSTORE_RAM is not set
4193CONFIG_SYSV_FS=m 4455CONFIG_SYSV_FS=m
4194CONFIG_UFS_FS=m 4456CONFIG_UFS_FS=m
4195# CONFIG_UFS_FS_WRITE is not set 4457# CONFIG_UFS_FS_WRITE is not set
4196# CONFIG_UFS_DEBUG is not set 4458# CONFIG_UFS_DEBUG is not set
4197CONFIG_EXOFS_FS=m 4459CONFIG_EXOFS_FS=m
4198# CONFIG_EXOFS_DEBUG is not set 4460# CONFIG_EXOFS_DEBUG is not set
4461CONFIG_F2FS_FS=m
4462CONFIG_F2FS_STAT_FS=y
4463CONFIG_F2FS_FS_XATTR=y
4464CONFIG_F2FS_FS_POSIX_ACL=y
4199CONFIG_ORE=m 4465CONFIG_ORE=m
4200CONFIG_NETWORK_FILESYSTEMS=y 4466CONFIG_NETWORK_FILESYSTEMS=y
4201CONFIG_NFS_FS=m 4467CONFIG_NFS_FS=m
4202CONFIG_NFS_V3=y 4468CONFIG_NFS_V2=m
4469CONFIG_NFS_V3=m
4203# CONFIG_NFS_V3_ACL is not set 4470# CONFIG_NFS_V3_ACL is not set
4204CONFIG_NFS_V4=y 4471CONFIG_NFS_V4=m
4472# CONFIG_NFS_SWAP is not set
4205# CONFIG_NFS_V4_1 is not set 4473# CONFIG_NFS_V4_1 is not set
4206# CONFIG_NFS_FSCACHE is not set 4474# CONFIG_NFS_FSCACHE is not set
4207# CONFIG_NFS_USE_LEGACY_DNS is not set 4475# CONFIG_NFS_USE_LEGACY_DNS is not set
@@ -4227,10 +4495,12 @@ CONFIG_CIFS=m
4227# CONFIG_CIFS_UPCALL is not set 4495# CONFIG_CIFS_UPCALL is not set
4228CONFIG_CIFS_XATTR=y 4496CONFIG_CIFS_XATTR=y
4229CONFIG_CIFS_POSIX=y 4497CONFIG_CIFS_POSIX=y
4498CONFIG_CIFS_ACL=y
4499CONFIG_CIFS_DEBUG=y
4230# CONFIG_CIFS_DEBUG2 is not set 4500# CONFIG_CIFS_DEBUG2 is not set
4231CONFIG_CIFS_DFS_UPCALL=y 4501CONFIG_CIFS_DFS_UPCALL=y
4502# CONFIG_CIFS_SMB2 is not set
4232# CONFIG_CIFS_FSCACHE is not set 4503# CONFIG_CIFS_FSCACHE is not set
4233CONFIG_CIFS_ACL=y
4234# CONFIG_NCP_FS is not set 4504# CONFIG_NCP_FS is not set
4235# CONFIG_CODA_FS is not set 4505# CONFIG_CODA_FS is not set
4236# CONFIG_AFS_FS is not set 4506# CONFIG_AFS_FS is not set
@@ -4276,6 +4546,17 @@ CONFIG_NLS_ISO8859_14=m
4276CONFIG_NLS_ISO8859_15=m 4546CONFIG_NLS_ISO8859_15=m
4277CONFIG_NLS_KOI8_R=m 4547CONFIG_NLS_KOI8_R=m
4278CONFIG_NLS_KOI8_U=m 4548CONFIG_NLS_KOI8_U=m
4549CONFIG_NLS_MAC_ROMAN=m
4550CONFIG_NLS_MAC_CELTIC=m
4551CONFIG_NLS_MAC_CENTEURO=m
4552CONFIG_NLS_MAC_CROATIAN=m
4553CONFIG_NLS_MAC_CYRILLIC=m
4554CONFIG_NLS_MAC_GAELIC=m
4555CONFIG_NLS_MAC_GREEK=m
4556CONFIG_NLS_MAC_ICELAND=m
4557CONFIG_NLS_MAC_INUIT=m
4558CONFIG_NLS_MAC_ROMANIAN=m
4559CONFIG_NLS_MAC_TURKISH=m
4279CONFIG_NLS_UTF8=m 4560CONFIG_NLS_UTF8=m
4280CONFIG_DLM=m 4561CONFIG_DLM=m
4281# CONFIG_DLM_DEBUG is not set 4562# CONFIG_DLM_DEBUG is not set
@@ -4291,6 +4572,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
4291CONFIG_FRAME_WARN=1024 4572CONFIG_FRAME_WARN=1024
4292CONFIG_MAGIC_SYSRQ=y 4573CONFIG_MAGIC_SYSRQ=y
4293# CONFIG_STRIP_ASM_SYMS is not set 4574# CONFIG_STRIP_ASM_SYMS is not set
4575# CONFIG_READABLE_ASM is not set
4294# CONFIG_UNUSED_SYMBOLS is not set 4576# CONFIG_UNUSED_SYMBOLS is not set
4295CONFIG_DEBUG_FS=y 4577CONFIG_DEBUG_FS=y
4296# CONFIG_HEADERS_CHECK is not set 4578# CONFIG_HEADERS_CHECK is not set
@@ -4303,12 +4585,15 @@ CONFIG_HARDLOCKUP_DETECTOR=y
4303CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 4585CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
4304# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 4586# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
4305CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 4587CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
4588# CONFIG_PANIC_ON_OOPS is not set
4589CONFIG_PANIC_ON_OOPS_VALUE=0
4306# CONFIG_DETECT_HUNG_TASK is not set 4590# CONFIG_DETECT_HUNG_TASK is not set
4307CONFIG_SCHED_DEBUG=y 4591CONFIG_SCHED_DEBUG=y
4308CONFIG_SCHEDSTATS=y 4592CONFIG_SCHEDSTATS=y
4309CONFIG_TIMER_STATS=y 4593CONFIG_TIMER_STATS=y
4310# CONFIG_DEBUG_OBJECTS is not set 4594# CONFIG_DEBUG_OBJECTS is not set
4311# CONFIG_SLUB_STATS is not set 4595# CONFIG_SLUB_STATS is not set
4596CONFIG_HAVE_DEBUG_KMEMLEAK=y
4312# CONFIG_DEBUG_KMEMLEAK is not set 4597# CONFIG_DEBUG_KMEMLEAK is not set
4313# CONFIG_DEBUG_RT_MUTEXES is not set 4598# CONFIG_DEBUG_RT_MUTEXES is not set
4314# CONFIG_RT_MUTEX_TESTER is not set 4599# CONFIG_RT_MUTEX_TESTER is not set
@@ -4316,7 +4601,6 @@ CONFIG_TIMER_STATS=y
4316# CONFIG_DEBUG_MUTEXES is not set 4601# CONFIG_DEBUG_MUTEXES is not set
4317# CONFIG_DEBUG_LOCK_ALLOC is not set 4602# CONFIG_DEBUG_LOCK_ALLOC is not set
4318# CONFIG_PROVE_LOCKING is not set 4603# CONFIG_PROVE_LOCKING is not set
4319# CONFIG_SPARSE_RCU_POINTER is not set
4320# CONFIG_LOCK_STAT is not set 4604# CONFIG_LOCK_STAT is not set
4321# CONFIG_DEBUG_ATOMIC_SLEEP is not set 4605# CONFIG_DEBUG_ATOMIC_SLEEP is not set
4322# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 4606# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
@@ -4338,6 +4622,11 @@ CONFIG_DEBUG_BUGVERBOSE=y
4338CONFIG_ARCH_WANT_FRAME_POINTERS=y 4622CONFIG_ARCH_WANT_FRAME_POINTERS=y
4339CONFIG_FRAME_POINTER=y 4623CONFIG_FRAME_POINTER=y
4340# CONFIG_BOOT_PRINTK_DELAY is not set 4624# CONFIG_BOOT_PRINTK_DELAY is not set
4625
4626#
4627# RCU Debugging
4628#
4629# CONFIG_SPARSE_RCU_POINTER is not set
4341# CONFIG_RCU_TORTURE_TEST is not set 4630# CONFIG_RCU_TORTURE_TEST is not set
4342CONFIG_RCU_CPU_STALL_TIMEOUT=60 4631CONFIG_RCU_CPU_STALL_TIMEOUT=60
4343# CONFIG_RCU_CPU_STALL_INFO is not set 4632# CONFIG_RCU_CPU_STALL_INFO is not set
@@ -4348,9 +4637,11 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
4348# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 4637# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
4349# CONFIG_DEBUG_PER_CPU_MAPS is not set 4638# CONFIG_DEBUG_PER_CPU_MAPS is not set
4350# CONFIG_LKDTM is not set 4639# CONFIG_LKDTM is not set
4351# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set 4640# CONFIG_NOTIFIER_ERROR_INJECTION is not set
4352# CONFIG_FAULT_INJECTION is not set 4641# CONFIG_FAULT_INJECTION is not set
4353CONFIG_LATENCYTOP=y 4642CONFIG_LATENCYTOP=y
4643CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
4644# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
4354# CONFIG_DEBUG_PAGEALLOC is not set 4645# CONFIG_DEBUG_PAGEALLOC is not set
4355CONFIG_USER_STACKTRACE_SUPPORT=y 4646CONFIG_USER_STACKTRACE_SUPPORT=y
4356CONFIG_HAVE_FUNCTION_TRACER=y 4647CONFIG_HAVE_FUNCTION_TRACER=y
@@ -4358,13 +4649,17 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
4358CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y 4649CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
4359CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 4650CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
4360CONFIG_HAVE_DYNAMIC_FTRACE=y 4651CONFIG_HAVE_DYNAMIC_FTRACE=y
4652CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
4361CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 4653CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
4362CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 4654CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
4363CONFIG_HAVE_C_RECORDMCOUNT=y 4655CONFIG_HAVE_C_RECORDMCOUNT=y
4656CONFIG_TRACE_CLOCK=y
4364CONFIG_RING_BUFFER=y 4657CONFIG_RING_BUFFER=y
4365CONFIG_RING_BUFFER_ALLOW_SWAP=y 4658CONFIG_RING_BUFFER_ALLOW_SWAP=y
4366CONFIG_TRACING_SUPPORT=y 4659CONFIG_TRACING_SUPPORT=y
4367# CONFIG_FTRACE is not set 4660# CONFIG_FTRACE is not set
4661# CONFIG_RBTREE_TEST is not set
4662# CONFIG_INTERVAL_TREE_TEST is not set
4368# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set 4663# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
4369# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set 4664# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
4370# CONFIG_DYNAMIC_DEBUG is not set 4665# CONFIG_DYNAMIC_DEBUG is not set
@@ -4375,6 +4670,7 @@ CONFIG_TRACING_SUPPORT=y
4375CONFIG_HAVE_ARCH_KGDB=y 4670CONFIG_HAVE_ARCH_KGDB=y
4376# CONFIG_KGDB is not set 4671# CONFIG_KGDB is not set
4377CONFIG_HAVE_ARCH_KMEMCHECK=y 4672CONFIG_HAVE_ARCH_KMEMCHECK=y
4673# CONFIG_TEST_STRING_HELPERS is not set
4378CONFIG_TEST_KSTRTOX=m 4674CONFIG_TEST_KSTRTOX=m
4379CONFIG_STRICT_DEVMEM=y 4675CONFIG_STRICT_DEVMEM=y
4380# CONFIG_X86_VERBOSE_BOOTUP is not set 4676# CONFIG_X86_VERBOSE_BOOTUP is not set
@@ -4386,6 +4682,7 @@ CONFIG_DEBUG_RODATA=y
4386CONFIG_DEBUG_SET_MODULE_RONX=y 4682CONFIG_DEBUG_SET_MODULE_RONX=y
4387CONFIG_DEBUG_NX_TEST=m 4683CONFIG_DEBUG_NX_TEST=m
4388CONFIG_DOUBLEFAULT=y 4684CONFIG_DOUBLEFAULT=y
4685# CONFIG_DEBUG_TLBFLUSH is not set
4389# CONFIG_IOMMU_STRESS is not set 4686# CONFIG_IOMMU_STRESS is not set
4390CONFIG_HAVE_MMIOTRACE_SUPPORT=y 4687CONFIG_HAVE_MMIOTRACE_SUPPORT=y
4391CONFIG_X86_DECODER_SELFTEST=y 4688CONFIG_X86_DECODER_SELFTEST=y
@@ -4401,17 +4698,13 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0
4401CONFIG_DEBUG_BOOT_PARAMS=y 4698CONFIG_DEBUG_BOOT_PARAMS=y
4402# CONFIG_CPA_DEBUG is not set 4699# CONFIG_CPA_DEBUG is not set
4403# CONFIG_OPTIMIZE_INLINING is not set 4700# CONFIG_OPTIMIZE_INLINING is not set
4404# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
4405CONFIG_DEBUG_NMI_SELFTEST=y 4701CONFIG_DEBUG_NMI_SELFTEST=y
4406 4702
4407# 4703#
4408# Linux VServer 4704# Linux VServer
4409# 4705#
4410CONFIG_VSERVER_AUTO_LBACK=y 4706CONFIG_VSERVER_AUTO_LBACK=y
4411CONFIG_VSERVER_AUTO_SINGLE=y
4412# CONFIG_VSERVER_COWBL is not set 4707# CONFIG_VSERVER_COWBL is not set
4413# CONFIG_VSERVER_VTIME is not set
4414# CONFIG_VSERVER_DEVICE is not set
4415CONFIG_VSERVER_PROC_SECURE=y 4708CONFIG_VSERVER_PROC_SECURE=y
4416# CONFIG_TAGGING_NONE is not set 4709# CONFIG_TAGGING_NONE is not set
4417# CONFIG_TAGGING_UID16 is not set 4710# CONFIG_TAGGING_UID16 is not set
@@ -4424,6 +4717,7 @@ CONFIG_VSERVER_CONTEXTS=256
4424CONFIG_VSERVER_WARN=y 4717CONFIG_VSERVER_WARN=y
4425CONFIG_VSERVER_WARN_DEVPTS=y 4718CONFIG_VSERVER_WARN_DEVPTS=y
4426# CONFIG_VSERVER_DEBUG is not set 4719# CONFIG_VSERVER_DEBUG is not set
4720# CONFIG_VSERVER_EXTRA_MNT_CHECK is not set
4427CONFIG_QUOTES_ISO8859=y 4721CONFIG_QUOTES_ISO8859=y
4428# CONFIG_QUOTES_UTF8 is not set 4722# CONFIG_QUOTES_UTF8 is not set
4429# CONFIG_QUOTES_ASCII is not set 4723# CONFIG_QUOTES_ASCII is not set
@@ -4444,6 +4738,7 @@ CONFIG_SECURITYFS=y
4444# CONFIG_SECURITY_NETWORK is not set 4738# CONFIG_SECURITY_NETWORK is not set
4445# CONFIG_SECURITY_PATH is not set 4739# CONFIG_SECURITY_PATH is not set
4446# CONFIG_INTEL_TXT is not set 4740# CONFIG_INTEL_TXT is not set
4741# CONFIG_SECURITY_SMACK is not set
4447# CONFIG_SECURITY_TOMOYO is not set 4742# CONFIG_SECURITY_TOMOYO is not set
4448# CONFIG_SECURITY_APPARMOR is not set 4743# CONFIG_SECURITY_APPARMOR is not set
4449# CONFIG_SECURITY_YAMA is not set 4744# CONFIG_SECURITY_YAMA is not set
@@ -4456,8 +4751,6 @@ CONFIG_ASYNC_MEMCPY=m
4456CONFIG_ASYNC_XOR=m 4751CONFIG_ASYNC_XOR=m
4457CONFIG_ASYNC_PQ=m 4752CONFIG_ASYNC_PQ=m
4458CONFIG_ASYNC_RAID6_RECOV=m 4753CONFIG_ASYNC_RAID6_RECOV=m
4459CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
4460CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
4461CONFIG_CRYPTO=y 4754CONFIG_CRYPTO=y
4462 4755
4463# 4756#
@@ -4486,6 +4779,8 @@ CONFIG_CRYPTO_WORKQUEUE=y
4486CONFIG_CRYPTO_CRYPTD=m 4779CONFIG_CRYPTO_CRYPTD=m
4487CONFIG_CRYPTO_AUTHENC=m 4780CONFIG_CRYPTO_AUTHENC=m
4488CONFIG_CRYPTO_TEST=m 4781CONFIG_CRYPTO_TEST=m
4782CONFIG_CRYPTO_ABLK_HELPER_X86=m
4783CONFIG_CRYPTO_GLUE_HELPER_X86=m
4489 4784
4490# 4785#
4491# Authenticated Encryption with Associated Data 4786# Authenticated Encryption with Associated Data
@@ -4508,6 +4803,7 @@ CONFIG_CRYPTO_XTS=m
4508# 4803#
4509# Hash modes 4804# Hash modes
4510# 4805#
4806CONFIG_CRYPTO_CMAC=m
4511CONFIG_CRYPTO_HMAC=m 4807CONFIG_CRYPTO_HMAC=m
4512CONFIG_CRYPTO_XCBC=m 4808CONFIG_CRYPTO_XCBC=m
4513CONFIG_CRYPTO_VMAC=m 4809CONFIG_CRYPTO_VMAC=m
@@ -4517,6 +4813,8 @@ CONFIG_CRYPTO_VMAC=m
4517# 4813#
4518CONFIG_CRYPTO_CRC32C=m 4814CONFIG_CRYPTO_CRC32C=m
4519CONFIG_CRYPTO_CRC32C_INTEL=m 4815CONFIG_CRYPTO_CRC32C_INTEL=m
4816CONFIG_CRYPTO_CRC32=m
4817CONFIG_CRYPTO_CRC32_PCLMUL=m
4520CONFIG_CRYPTO_GHASH=m 4818CONFIG_CRYPTO_GHASH=m
4521CONFIG_CRYPTO_MD4=m 4819CONFIG_CRYPTO_MD4=m
4522CONFIG_CRYPTO_MD5=y 4820CONFIG_CRYPTO_MD5=y
@@ -4534,7 +4832,7 @@ CONFIG_CRYPTO_WP512=m
4534# 4832#
4535# Ciphers 4833# Ciphers
4536# 4834#
4537CONFIG_CRYPTO_AES=m 4835CONFIG_CRYPTO_AES=y
4538CONFIG_CRYPTO_AES_586=m 4836CONFIG_CRYPTO_AES_586=m
4539CONFIG_CRYPTO_AES_NI_INTEL=m 4837CONFIG_CRYPTO_AES_NI_INTEL=m
4540CONFIG_CRYPTO_ANUBIS=m 4838CONFIG_CRYPTO_ANUBIS=m
@@ -4542,6 +4840,7 @@ CONFIG_CRYPTO_ARC4=m
4542CONFIG_CRYPTO_BLOWFISH=m 4840CONFIG_CRYPTO_BLOWFISH=m
4543CONFIG_CRYPTO_BLOWFISH_COMMON=m 4841CONFIG_CRYPTO_BLOWFISH_COMMON=m
4544CONFIG_CRYPTO_CAMELLIA=m 4842CONFIG_CRYPTO_CAMELLIA=m
4843CONFIG_CRYPTO_CAST_COMMON=m
4545CONFIG_CRYPTO_CAST5=m 4844CONFIG_CRYPTO_CAST5=m
4546CONFIG_CRYPTO_CAST6=m 4845CONFIG_CRYPTO_CAST6=m
4547CONFIG_CRYPTO_DES=m 4846CONFIG_CRYPTO_DES=m
@@ -4578,17 +4877,24 @@ CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
4578CONFIG_CRYPTO_DEV_GEODE=m 4877CONFIG_CRYPTO_DEV_GEODE=m
4579CONFIG_CRYPTO_DEV_HIFN_795X=m 4878CONFIG_CRYPTO_DEV_HIFN_795X=m
4580CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y 4879CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
4880CONFIG_ASYMMETRIC_KEY_TYPE=m
4881CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m
4882CONFIG_PUBLIC_KEY_ALGO_RSA=m
4883CONFIG_X509_CERTIFICATE_PARSER=m
4581CONFIG_HAVE_KVM=y 4884CONFIG_HAVE_KVM=y
4582CONFIG_HAVE_KVM_IRQCHIP=y 4885CONFIG_HAVE_KVM_IRQCHIP=y
4886CONFIG_HAVE_KVM_IRQ_ROUTING=y
4583CONFIG_HAVE_KVM_EVENTFD=y 4887CONFIG_HAVE_KVM_EVENTFD=y
4584CONFIG_KVM_APIC_ARCHITECTURE=y 4888CONFIG_KVM_APIC_ARCHITECTURE=y
4585CONFIG_KVM_MMIO=y 4889CONFIG_KVM_MMIO=y
4586CONFIG_KVM_ASYNC_PF=y 4890CONFIG_KVM_ASYNC_PF=y
4891CONFIG_HAVE_KVM_MSI=y
4892CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
4587CONFIG_VIRTUALIZATION=y 4893CONFIG_VIRTUALIZATION=y
4588CONFIG_KVM=m 4894CONFIG_KVM=m
4589CONFIG_KVM_INTEL=m 4895CONFIG_KVM_INTEL=m
4590CONFIG_KVM_AMD=m 4896CONFIG_KVM_AMD=m
4591CONFIG_VHOST_NET=m 4897CONFIG_KVM_DEVICE_ASSIGNMENT=y
4592# CONFIG_LGUEST is not set 4898# CONFIG_LGUEST is not set
4593# CONFIG_BINARY_PRINTF is not set 4899# CONFIG_BINARY_PRINTF is not set
4594 4900
@@ -4597,6 +4903,8 @@ CONFIG_VHOST_NET=m
4597# 4903#
4598CONFIG_RAID6_PQ=m 4904CONFIG_RAID6_PQ=m
4599CONFIG_BITREVERSE=y 4905CONFIG_BITREVERSE=y
4906CONFIG_GENERIC_STRNCPY_FROM_USER=y
4907CONFIG_GENERIC_STRNLEN_USER=y
4600CONFIG_GENERIC_FIND_FIRST_BIT=y 4908CONFIG_GENERIC_FIND_FIRST_BIT=y
4601CONFIG_GENERIC_PCI_IOMAP=y 4909CONFIG_GENERIC_PCI_IOMAP=y
4602CONFIG_GENERIC_IOMAP=y 4910CONFIG_GENERIC_IOMAP=y
@@ -4647,6 +4955,11 @@ CONFIG_CHECK_SIGNATURE=y
4647CONFIG_CPU_RMAP=y 4955CONFIG_CPU_RMAP=y
4648CONFIG_DQL=y 4956CONFIG_DQL=y
4649CONFIG_NLATTR=y 4957CONFIG_NLATTR=y
4958CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
4650CONFIG_LRU_CACHE=m 4959CONFIG_LRU_CACHE=m
4651CONFIG_AVERAGE=y 4960CONFIG_AVERAGE=y
4961CONFIG_CLZ_TAB=y
4652CONFIG_CORDIC=m 4962CONFIG_CORDIC=m
4963# CONFIG_DDR is not set
4964CONFIG_MPILIB=m
4965CONFIG_OID_REGISTRY=m
diff --git a/main/linux-vserver/kernelconfig.x86_64 b/main/linux-vserver/kernelconfig.x86_64
index 5346cbce10..c977cf633b 100644
--- a/main/linux-vserver/kernelconfig.x86_64
+++ b/main/linux-vserver/kernelconfig.x86_64
@@ -1,19 +1,13 @@
1# 1#
2# Automatically generated file; DO NOT EDIT. 2# Automatically generated file; DO NOT EDIT.
3# Linux/x86_64 3.4.51-vs2.3.3.9 Kernel Configuration 3# Linux/x86 3.10.18-vs2.3.6.6 Kernel Configuration
4# 4#
5CONFIG_64BIT=y 5CONFIG_64BIT=y
6# CONFIG_X86_32 is not set
7CONFIG_X86_64=y 6CONFIG_X86_64=y
8CONFIG_X86=y 7CONFIG_X86=y
9CONFIG_INSTRUCTION_DECODER=y 8CONFIG_INSTRUCTION_DECODER=y
10CONFIG_OUTPUT_FORMAT="elf64-x86-64" 9CONFIG_OUTPUT_FORMAT="elf64-x86-64"
11CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" 10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
12CONFIG_GENERIC_CMOS_UPDATE=y
13CONFIG_CLOCKSOURCE_WATCHDOG=y
14CONFIG_GENERIC_CLOCKEVENTS=y
15CONFIG_ARCH_CLOCKSOURCE_DATA=y
16CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
17CONFIG_LOCKDEP_SUPPORT=y 11CONFIG_LOCKDEP_SUPPORT=y
18CONFIG_STACKTRACE_SUPPORT=y 12CONFIG_STACKTRACE_SUPPORT=y
19CONFIG_HAVE_LATENCYTOP_SUPPORT=y 13CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -24,15 +18,10 @@ CONFIG_GENERIC_ISA_DMA=y
24CONFIG_GENERIC_BUG=y 18CONFIG_GENERIC_BUG=y
25CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y 19CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
26CONFIG_GENERIC_HWEIGHT=y 20CONFIG_GENERIC_HWEIGHT=y
27CONFIG_GENERIC_GPIO=y
28CONFIG_ARCH_MAY_HAVE_PC_FDC=y 21CONFIG_ARCH_MAY_HAVE_PC_FDC=y
29# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
30CONFIG_RWSEM_XCHGADD_ALGORITHM=y 22CONFIG_RWSEM_XCHGADD_ALGORITHM=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
32CONFIG_GENERIC_CALIBRATE_DELAY=y 23CONFIG_GENERIC_CALIBRATE_DELAY=y
33CONFIG_GENERIC_TIME_VSYSCALL=y
34CONFIG_ARCH_HAS_CPU_RELAX=y 24CONFIG_ARCH_HAS_CPU_RELAX=y
35CONFIG_ARCH_HAS_DEFAULT_IDLE=y
36CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y 25CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
37CONFIG_ARCH_HAS_CPU_AUTOPROBE=y 26CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
38CONFIG_HAVE_SETUP_PER_CPU_AREA=y 27CONFIG_HAVE_SETUP_PER_CPU_AREA=y
@@ -48,16 +37,15 @@ CONFIG_HAVE_INTEL_TXT=y
48CONFIG_X86_64_SMP=y 37CONFIG_X86_64_SMP=y
49CONFIG_X86_HT=y 38CONFIG_X86_HT=y
50CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" 39CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
51# CONFIG_KTIME_SCALAR is not set
52CONFIG_ARCH_CPU_PROBE_RELEASE=y 40CONFIG_ARCH_CPU_PROBE_RELEASE=y
41CONFIG_ARCH_SUPPORTS_UPROBES=y
53CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 42CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
54CONFIG_HAVE_IRQ_WORK=y
55CONFIG_IRQ_WORK=y 43CONFIG_IRQ_WORK=y
44CONFIG_BUILDTIME_EXTABLE_SORT=y
56 45
57# 46#
58# General setup 47# General setup
59# 48#
60CONFIG_EXPERIMENTAL=y
61CONFIG_INIT_ENV_ARG_LIMIT=32 49CONFIG_INIT_ENV_ARG_LIMIT=32
62CONFIG_CROSS_COMPILE="" 50CONFIG_CROSS_COMPILE=""
63CONFIG_LOCALVERSION="" 51CONFIG_LOCALVERSION=""
@@ -77,13 +65,7 @@ CONFIG_SWAP=y
77CONFIG_SYSVIPC=y 65CONFIG_SYSVIPC=y
78CONFIG_SYSVIPC_SYSCTL=y 66CONFIG_SYSVIPC_SYSCTL=y
79# CONFIG_POSIX_MQUEUE is not set 67# CONFIG_POSIX_MQUEUE is not set
80CONFIG_BSD_PROCESS_ACCT=y
81CONFIG_BSD_PROCESS_ACCT_V3=y
82# CONFIG_FHANDLE is not set 68# CONFIG_FHANDLE is not set
83CONFIG_TASKSTATS=y
84CONFIG_TASK_DELAY_ACCT=y
85CONFIG_TASK_XACCT=y
86CONFIG_TASK_IO_ACCOUNTING=y
87# CONFIG_AUDIT is not set 69# CONFIG_AUDIT is not set
88CONFIG_HAVE_GENERIC_HARDIRQS=y 70CONFIG_HAVE_GENERIC_HARDIRQS=y
89 71
@@ -95,22 +77,62 @@ CONFIG_GENERIC_IRQ_PROBE=y
95CONFIG_GENERIC_IRQ_SHOW=y 77CONFIG_GENERIC_IRQ_SHOW=y
96CONFIG_GENERIC_PENDING_IRQ=y 78CONFIG_GENERIC_PENDING_IRQ=y
97CONFIG_GENERIC_IRQ_CHIP=y 79CONFIG_GENERIC_IRQ_CHIP=y
80CONFIG_IRQ_DOMAIN=y
81# CONFIG_IRQ_DOMAIN_DEBUG is not set
98CONFIG_IRQ_FORCED_THREADING=y 82CONFIG_IRQ_FORCED_THREADING=y
99CONFIG_SPARSE_IRQ=y 83CONFIG_SPARSE_IRQ=y
84CONFIG_CLOCKSOURCE_WATCHDOG=y
85CONFIG_ARCH_CLOCKSOURCE_DATA=y
86CONFIG_GENERIC_TIME_VSYSCALL=y
87CONFIG_GENERIC_CLOCKEVENTS=y
88CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
89CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
90CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
91CONFIG_GENERIC_CMOS_UPDATE=y
92
93#
94# Timers subsystem
95#
96CONFIG_TICK_ONESHOT=y
97CONFIG_NO_HZ_COMMON=y
98# CONFIG_HZ_PERIODIC is not set
99CONFIG_NO_HZ_IDLE=y
100# CONFIG_NO_HZ_FULL is not set
101CONFIG_NO_HZ=y
102CONFIG_HIGH_RES_TIMERS=y
103
104#
105# CPU/Task time and stats accounting
106#
107# CONFIG_TICK_CPU_ACCOUNTING is not set
108# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
109CONFIG_IRQ_TIME_ACCOUNTING=y
110CONFIG_BSD_PROCESS_ACCT=y
111CONFIG_BSD_PROCESS_ACCT_V3=y
112CONFIG_TASKSTATS=y
113CONFIG_TASK_DELAY_ACCT=y
114CONFIG_TASK_XACCT=y
115CONFIG_TASK_IO_ACCOUNTING=y
100 116
101# 117#
102# RCU Subsystem 118# RCU Subsystem
103# 119#
104CONFIG_TREE_RCU=y 120CONFIG_TREE_RCU=y
105# CONFIG_PREEMPT_RCU is not set 121# CONFIG_PREEMPT_RCU is not set
122CONFIG_RCU_STALL_COMMON=y
123# CONFIG_RCU_USER_QS is not set
106CONFIG_RCU_FANOUT=32 124CONFIG_RCU_FANOUT=32
125CONFIG_RCU_FANOUT_LEAF=16
107# CONFIG_RCU_FANOUT_EXACT is not set 126# CONFIG_RCU_FANOUT_EXACT is not set
108CONFIG_RCU_FAST_NO_HZ=y 127CONFIG_RCU_FAST_NO_HZ=y
109# CONFIG_TREE_RCU_TRACE is not set 128# CONFIG_TREE_RCU_TRACE is not set
129# CONFIG_RCU_NOCB_CPU is not set
110CONFIG_IKCONFIG=m 130CONFIG_IKCONFIG=m
111CONFIG_IKCONFIG_PROC=y 131CONFIG_IKCONFIG_PROC=y
112CONFIG_LOG_BUF_SHIFT=14 132CONFIG_LOG_BUF_SHIFT=14
113CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y 133CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
134CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
135CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y
114CONFIG_CGROUPS=y 136CONFIG_CGROUPS=y
115# CONFIG_CGROUP_DEBUG is not set 137# CONFIG_CGROUP_DEBUG is not set
116CONFIG_CGROUP_FREEZER=y 138CONFIG_CGROUP_FREEZER=y
@@ -119,9 +141,9 @@ CONFIG_CPUSETS=y
119# CONFIG_PROC_PID_CPUSET is not set 141# CONFIG_PROC_PID_CPUSET is not set
120CONFIG_CGROUP_CPUACCT=y 142CONFIG_CGROUP_CPUACCT=y
121CONFIG_RESOURCE_COUNTERS=y 143CONFIG_RESOURCE_COUNTERS=y
122CONFIG_CGROUP_MEM_RES_CTLR=y 144CONFIG_MEMCG=y
123# CONFIG_CGROUP_MEM_RES_CTLR_SWAP is not set 145# CONFIG_MEMCG_SWAP is not set
124# CONFIG_CGROUP_MEM_RES_CTLR_KMEM is not set 146# CONFIG_MEMCG_KMEM is not set
125# CONFIG_CGROUP_PERF is not set 147# CONFIG_CGROUP_PERF is not set
126CONFIG_CGROUP_SCHED=y 148CONFIG_CGROUP_SCHED=y
127CONFIG_FAIR_GROUP_SCHED=y 149CONFIG_FAIR_GROUP_SCHED=y
@@ -135,6 +157,8 @@ CONFIG_UTS_NS=y
135CONFIG_IPC_NS=y 157CONFIG_IPC_NS=y
136CONFIG_PID_NS=y 158CONFIG_PID_NS=y
137CONFIG_NET_NS=y 159CONFIG_NET_NS=y
160CONFIG_UIDGID_CONVERTED=y
161# CONFIG_UIDGID_STRICT_TYPE_CHECKS is not set
138CONFIG_SCHED_AUTOGROUP=y 162CONFIG_SCHED_AUTOGROUP=y
139CONFIG_MM_OWNER=y 163CONFIG_MM_OWNER=y
140# CONFIG_SYSFS_DEPRECATED is not set 164# CONFIG_SYSFS_DEPRECATED is not set
@@ -149,17 +173,19 @@ CONFIG_RD_LZO=y
149CONFIG_CC_OPTIMIZE_FOR_SIZE=y 173CONFIG_CC_OPTIMIZE_FOR_SIZE=y
150CONFIG_SYSCTL=y 174CONFIG_SYSCTL=y
151CONFIG_ANON_INODES=y 175CONFIG_ANON_INODES=y
176CONFIG_HAVE_UID16=y
177CONFIG_SYSCTL_EXCEPTION_TRACE=y
178CONFIG_HOTPLUG=y
179CONFIG_HAVE_PCSPKR_PLATFORM=y
152CONFIG_EXPERT=y 180CONFIG_EXPERT=y
153CONFIG_UID16=y 181CONFIG_UID16=y
154CONFIG_SYSCTL_SYSCALL=y 182CONFIG_SYSCTL_SYSCALL=y
155CONFIG_KALLSYMS=y 183CONFIG_KALLSYMS=y
156CONFIG_KALLSYMS_ALL=y 184CONFIG_KALLSYMS_ALL=y
157CONFIG_HOTPLUG=y
158CONFIG_PRINTK=y 185CONFIG_PRINTK=y
159CONFIG_BUG=y 186CONFIG_BUG=y
160CONFIG_ELF_CORE=y 187CONFIG_ELF_CORE=y
161CONFIG_PCSPKR_PLATFORM=y 188CONFIG_PCSPKR_PLATFORM=y
162CONFIG_HAVE_PCSPKR_PLATFORM=y
163CONFIG_BASE_FULL=y 189CONFIG_BASE_FULL=y
164CONFIG_FUTEX=y 190CONFIG_FUTEX=y
165CONFIG_EPOLL=y 191CONFIG_EPOLL=y
@@ -168,6 +194,7 @@ CONFIG_TIMERFD=y
168CONFIG_EVENTFD=y 194CONFIG_EVENTFD=y
169CONFIG_SHMEM=y 195CONFIG_SHMEM=y
170CONFIG_AIO=y 196CONFIG_AIO=y
197CONFIG_PCI_QUIRKS=y
171CONFIG_EMBEDDED=y 198CONFIG_EMBEDDED=y
172CONFIG_HAVE_PERF_EVENTS=y 199CONFIG_HAVE_PERF_EVENTS=y
173 200
@@ -175,10 +202,8 @@ CONFIG_HAVE_PERF_EVENTS=y
175# Kernel Performance Events And Counters 202# Kernel Performance Events And Counters
176# 203#
177CONFIG_PERF_EVENTS=y 204CONFIG_PERF_EVENTS=y
178# CONFIG_PERF_COUNTERS is not set
179# CONFIG_DEBUG_PERF_USE_VMALLOC is not set 205# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
180CONFIG_VM_EVENT_COUNTERS=y 206CONFIG_VM_EVENT_COUNTERS=y
181CONFIG_PCI_QUIRKS=y
182# CONFIG_SLUB_DEBUG is not set 207# CONFIG_SLUB_DEBUG is not set
183# CONFIG_COMPAT_BRK is not set 208# CONFIG_COMPAT_BRK is not set
184# CONFIG_SLAB is not set 209# CONFIG_SLAB is not set
@@ -192,28 +217,42 @@ CONFIG_OPROFILE_NMI_TIMER=y
192CONFIG_KPROBES=y 217CONFIG_KPROBES=y
193# CONFIG_JUMP_LABEL is not set 218# CONFIG_JUMP_LABEL is not set
194CONFIG_OPTPROBES=y 219CONFIG_OPTPROBES=y
220# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
195CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 221CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
222CONFIG_ARCH_USE_BUILTIN_BSWAP=y
196CONFIG_KRETPROBES=y 223CONFIG_KRETPROBES=y
197CONFIG_USER_RETURN_NOTIFIER=y 224CONFIG_USER_RETURN_NOTIFIER=y
198CONFIG_HAVE_IOREMAP_PROT=y 225CONFIG_HAVE_IOREMAP_PROT=y
199CONFIG_HAVE_KPROBES=y 226CONFIG_HAVE_KPROBES=y
200CONFIG_HAVE_KRETPROBES=y 227CONFIG_HAVE_KRETPROBES=y
201CONFIG_HAVE_OPTPROBES=y 228CONFIG_HAVE_OPTPROBES=y
229CONFIG_HAVE_KPROBES_ON_FTRACE=y
202CONFIG_HAVE_ARCH_TRACEHOOK=y 230CONFIG_HAVE_ARCH_TRACEHOOK=y
203CONFIG_HAVE_DMA_ATTRS=y 231CONFIG_HAVE_DMA_ATTRS=y
204CONFIG_USE_GENERIC_SMP_HELPERS=y 232CONFIG_USE_GENERIC_SMP_HELPERS=y
233CONFIG_GENERIC_SMP_IDLE_THREAD=y
205CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y 234CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
206CONFIG_HAVE_DMA_API_DEBUG=y 235CONFIG_HAVE_DMA_API_DEBUG=y
207CONFIG_HAVE_HW_BREAKPOINT=y 236CONFIG_HAVE_HW_BREAKPOINT=y
208CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y 237CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
209CONFIG_HAVE_USER_RETURN_NOTIFIER=y 238CONFIG_HAVE_USER_RETURN_NOTIFIER=y
210CONFIG_HAVE_PERF_EVENTS_NMI=y 239CONFIG_HAVE_PERF_EVENTS_NMI=y
240CONFIG_HAVE_PERF_REGS=y
241CONFIG_HAVE_PERF_USER_STACK_DUMP=y
211CONFIG_HAVE_ARCH_JUMP_LABEL=y 242CONFIG_HAVE_ARCH_JUMP_LABEL=y
212CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y 243CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
213CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y 244CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
214CONFIG_HAVE_CMPXCHG_LOCAL=y 245CONFIG_HAVE_CMPXCHG_LOCAL=y
215CONFIG_HAVE_CMPXCHG_DOUBLE=y 246CONFIG_HAVE_CMPXCHG_DOUBLE=y
247CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
216CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y 248CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
249CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
250CONFIG_HAVE_CONTEXT_TRACKING=y
251CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
252CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
253CONFIG_MODULES_USE_ELF_RELA=y
254CONFIG_OLD_SIGSUSPEND3=y
255CONFIG_COMPAT_OLD_SIGACTION=y
217 256
218# 257#
219# GCOV-based kernel profiling 258# GCOV-based kernel profiling
@@ -228,6 +267,7 @@ CONFIG_MODULE_UNLOAD=y
228# CONFIG_MODULE_FORCE_UNLOAD is not set 267# CONFIG_MODULE_FORCE_UNLOAD is not set
229CONFIG_MODVERSIONS=y 268CONFIG_MODVERSIONS=y
230# CONFIG_MODULE_SRCVERSION_ALL is not set 269# CONFIG_MODULE_SRCVERSION_ALL is not set
270# CONFIG_MODULE_SIG is not set
231CONFIG_STOP_MACHINE=y 271CONFIG_STOP_MACHINE=y
232CONFIG_BLOCK=y 272CONFIG_BLOCK=y
233CONFIG_BLK_DEV_BSG=y 273CONFIG_BLK_DEV_BSG=y
@@ -270,33 +310,12 @@ CONFIG_DEFAULT_CFQ=y
270CONFIG_DEFAULT_IOSCHED="cfq" 310CONFIG_DEFAULT_IOSCHED="cfq"
271CONFIG_PREEMPT_NOTIFIERS=y 311CONFIG_PREEMPT_NOTIFIERS=y
272CONFIG_PADATA=y 312CONFIG_PADATA=y
273# CONFIG_INLINE_SPIN_TRYLOCK is not set 313CONFIG_ASN1=m
274# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
275# CONFIG_INLINE_SPIN_LOCK is not set
276# CONFIG_INLINE_SPIN_LOCK_BH is not set
277# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
278# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
279# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
280CONFIG_INLINE_SPIN_UNLOCK_IRQ=y 314CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
281# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
282# CONFIG_INLINE_READ_TRYLOCK is not set
283# CONFIG_INLINE_READ_LOCK is not set
284# CONFIG_INLINE_READ_LOCK_BH is not set
285# CONFIG_INLINE_READ_LOCK_IRQ is not set
286# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
287CONFIG_INLINE_READ_UNLOCK=y 315CONFIG_INLINE_READ_UNLOCK=y
288# CONFIG_INLINE_READ_UNLOCK_BH is not set
289CONFIG_INLINE_READ_UNLOCK_IRQ=y 316CONFIG_INLINE_READ_UNLOCK_IRQ=y
290# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
291# CONFIG_INLINE_WRITE_TRYLOCK is not set
292# CONFIG_INLINE_WRITE_LOCK is not set
293# CONFIG_INLINE_WRITE_LOCK_BH is not set
294# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
295# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
296CONFIG_INLINE_WRITE_UNLOCK=y 317CONFIG_INLINE_WRITE_UNLOCK=y
297# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
298CONFIG_INLINE_WRITE_UNLOCK_IRQ=y 318CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
299# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
300CONFIG_MUTEX_SPIN_ON_OWNER=y 319CONFIG_MUTEX_SPIN_ON_OWNER=y
301CONFIG_FREEZER=y 320CONFIG_FREEZER=y
302 321
@@ -304,19 +323,17 @@ CONFIG_FREEZER=y
304# Processor type and features 323# Processor type and features
305# 324#
306CONFIG_ZONE_DMA=y 325CONFIG_ZONE_DMA=y
307CONFIG_TICK_ONESHOT=y
308CONFIG_NO_HZ=y
309CONFIG_HIGH_RES_TIMERS=y
310CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
311CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
312CONFIG_SMP=y 326CONFIG_SMP=y
313CONFIG_X86_X2APIC=y 327CONFIG_X86_X2APIC=y
314CONFIG_X86_MPPARSE=y 328CONFIG_X86_MPPARSE=y
315CONFIG_X86_EXTENDED_PLATFORM=y 329CONFIG_X86_EXTENDED_PLATFORM=y
316# CONFIG_X86_VSMP is not set 330# CONFIG_X86_VSMP is not set
331# CONFIG_X86_INTEL_LPSS is not set
317CONFIG_SCHED_OMIT_FRAME_POINTER=y 332CONFIG_SCHED_OMIT_FRAME_POINTER=y
318CONFIG_PARAVIRT_GUEST=y 333CONFIG_HYPERVISOR_GUEST=y
319# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set 334CONFIG_PARAVIRT=y
335# CONFIG_PARAVIRT_DEBUG is not set
336# CONFIG_PARAVIRT_SPINLOCKS is not set
320CONFIG_XEN=y 337CONFIG_XEN=y
321CONFIG_XEN_DOM0=y 338CONFIG_XEN_DOM0=y
322CONFIG_XEN_PRIVILEGED_GUEST=y 339CONFIG_XEN_PRIVILEGED_GUEST=y
@@ -324,12 +341,9 @@ CONFIG_XEN_PVHVM=y
324CONFIG_XEN_MAX_DOMAIN_MEMORY=500 341CONFIG_XEN_MAX_DOMAIN_MEMORY=500
325CONFIG_XEN_SAVE_RESTORE=y 342CONFIG_XEN_SAVE_RESTORE=y
326# CONFIG_XEN_DEBUG_FS is not set 343# CONFIG_XEN_DEBUG_FS is not set
327CONFIG_KVM_CLOCK=y
328CONFIG_KVM_GUEST=y 344CONFIG_KVM_GUEST=y
329CONFIG_PARAVIRT=y 345# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
330# CONFIG_PARAVIRT_SPINLOCKS is not set
331CONFIG_PARAVIRT_CLOCK=y 346CONFIG_PARAVIRT_CLOCK=y
332# CONFIG_PARAVIRT_DEBUG is not set
333CONFIG_NO_BOOTMEM=y 347CONFIG_NO_BOOTMEM=y
334# CONFIG_MEMTEST is not set 348# CONFIG_MEMTEST is not set
335# CONFIG_MK8 is not set 349# CONFIG_MK8 is not set
@@ -338,10 +352,7 @@ CONFIG_NO_BOOTMEM=y
338# CONFIG_MATOM is not set 352# CONFIG_MATOM is not set
339CONFIG_GENERIC_CPU=y 353CONFIG_GENERIC_CPU=y
340CONFIG_X86_INTERNODE_CACHE_SHIFT=6 354CONFIG_X86_INTERNODE_CACHE_SHIFT=6
341CONFIG_X86_CMPXCHG=y
342CONFIG_X86_L1_CACHE_SHIFT=6 355CONFIG_X86_L1_CACHE_SHIFT=6
343CONFIG_X86_XADD=y
344CONFIG_X86_WP_WORKS_OK=y
345CONFIG_X86_TSC=y 356CONFIG_X86_TSC=y
346CONFIG_X86_CMPXCHG64=y 357CONFIG_X86_CMPXCHG64=y
347CONFIG_X86_CMOV=y 358CONFIG_X86_CMOV=y
@@ -362,7 +373,6 @@ CONFIG_IOMMU_HELPER=y
362CONFIG_NR_CPUS=128 373CONFIG_NR_CPUS=128
363CONFIG_SCHED_SMT=y 374CONFIG_SCHED_SMT=y
364CONFIG_SCHED_MC=y 375CONFIG_SCHED_MC=y
365CONFIG_IRQ_TIME_ACCOUNTING=y
366# CONFIG_PREEMPT_NONE is not set 376# CONFIG_PREEMPT_NONE is not set
367CONFIG_PREEMPT_VOLUNTARY=y 377CONFIG_PREEMPT_VOLUNTARY=y
368# CONFIG_PREEMPT is not set 378# CONFIG_PREEMPT is not set
@@ -375,6 +385,9 @@ CONFIG_MICROCODE=m
375CONFIG_MICROCODE_INTEL=y 385CONFIG_MICROCODE_INTEL=y
376CONFIG_MICROCODE_AMD=y 386CONFIG_MICROCODE_AMD=y
377CONFIG_MICROCODE_OLD_INTERFACE=y 387CONFIG_MICROCODE_OLD_INTERFACE=y
388CONFIG_MICROCODE_INTEL_LIB=y
389CONFIG_MICROCODE_INTEL_EARLY=y
390CONFIG_MICROCODE_EARLY=y
378CONFIG_X86_MSR=m 391CONFIG_X86_MSR=m
379CONFIG_X86_CPUID=m 392CONFIG_X86_CPUID=m
380CONFIG_ARCH_PHYS_ADDR_T_64BIT=y 393CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
@@ -396,9 +409,11 @@ CONFIG_SPARSEMEM_VMEMMAP=y
396CONFIG_HAVE_MEMBLOCK=y 409CONFIG_HAVE_MEMBLOCK=y
397CONFIG_HAVE_MEMBLOCK_NODE_MAP=y 410CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
398CONFIG_ARCH_DISCARD_MEMBLOCK=y 411CONFIG_ARCH_DISCARD_MEMBLOCK=y
412# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
399# CONFIG_MEMORY_HOTPLUG is not set 413# CONFIG_MEMORY_HOTPLUG is not set
400CONFIG_PAGEFLAGS_EXTENDED=y 414CONFIG_PAGEFLAGS_EXTENDED=y
401CONFIG_SPLIT_PTLOCK_CPUS=4 415CONFIG_SPLIT_PTLOCK_CPUS=4
416CONFIG_BALLOON_COMPACTION=y
402CONFIG_COMPACTION=y 417CONFIG_COMPACTION=y
403CONFIG_MIGRATION=y 418CONFIG_MIGRATION=y
404CONFIG_PHYS_ADDR_T_64BIT=y 419CONFIG_PHYS_ADDR_T_64BIT=y
@@ -411,7 +426,9 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
411CONFIG_TRANSPARENT_HUGEPAGE=y 426CONFIG_TRANSPARENT_HUGEPAGE=y
412CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y 427CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
413# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set 428# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
429CONFIG_CROSS_MEMORY_ATTACH=y
414# CONFIG_CLEANCACHE is not set 430# CONFIG_CLEANCACHE is not set
431# CONFIG_FRONTSWAP is not set
415# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set 432# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
416CONFIG_X86_RESERVE_LOW=64 433CONFIG_X86_RESERVE_LOW=64
417CONFIG_MTRR=y 434CONFIG_MTRR=y
@@ -421,6 +438,7 @@ CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
421CONFIG_X86_PAT=y 438CONFIG_X86_PAT=y
422CONFIG_ARCH_USES_PG_UNCACHED=y 439CONFIG_ARCH_USES_PG_UNCACHED=y
423CONFIG_ARCH_RANDOM=y 440CONFIG_ARCH_RANDOM=y
441CONFIG_X86_SMAP=y
424# CONFIG_EFI is not set 442# CONFIG_EFI is not set
425# CONFIG_SECCOMP is not set 443# CONFIG_SECCOMP is not set
426# CONFIG_CC_STACKPROTECTOR is not set 444# CONFIG_CC_STACKPROTECTOR is not set
@@ -436,6 +454,8 @@ CONFIG_PHYSICAL_START=0x1000000
436# CONFIG_RELOCATABLE is not set 454# CONFIG_RELOCATABLE is not set
437CONFIG_PHYSICAL_ALIGN=0x1000000 455CONFIG_PHYSICAL_ALIGN=0x1000000
438CONFIG_HOTPLUG_CPU=y 456CONFIG_HOTPLUG_CPU=y
457# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
458# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
439# CONFIG_COMPAT_VDSO is not set 459# CONFIG_COMPAT_VDSO is not set
440# CONFIG_CMDLINE_BOOL is not set 460# CONFIG_CMDLINE_BOOL is not set
441CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 461CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -449,6 +469,8 @@ CONFIG_HIBERNATE_CALLBACKS=y
449# CONFIG_HIBERNATION is not set 469# CONFIG_HIBERNATION is not set
450CONFIG_PM_SLEEP=y 470CONFIG_PM_SLEEP=y
451CONFIG_PM_SLEEP_SMP=y 471CONFIG_PM_SLEEP_SMP=y
472# CONFIG_PM_AUTOSLEEP is not set
473# CONFIG_PM_WAKELOCKS is not set
452# CONFIG_PM_RUNTIME is not set 474# CONFIG_PM_RUNTIME is not set
453CONFIG_PM=y 475CONFIG_PM=y
454# CONFIG_PM_DEBUG is not set 476# CONFIG_PM_DEBUG is not set
@@ -464,21 +486,22 @@ CONFIG_ACPI_BUTTON=m
464CONFIG_ACPI_VIDEO=m 486CONFIG_ACPI_VIDEO=m
465CONFIG_ACPI_FAN=m 487CONFIG_ACPI_FAN=m
466CONFIG_ACPI_DOCK=y 488CONFIG_ACPI_DOCK=y
489CONFIG_ACPI_I2C=m
467CONFIG_ACPI_PROCESSOR=m 490CONFIG_ACPI_PROCESSOR=m
468CONFIG_ACPI_IPMI=m 491CONFIG_ACPI_IPMI=m
469CONFIG_ACPI_HOTPLUG_CPU=y 492CONFIG_ACPI_HOTPLUG_CPU=y
470# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set 493# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
471CONFIG_ACPI_THERMAL=m 494CONFIG_ACPI_THERMAL=m
472# CONFIG_ACPI_CUSTOM_DSDT is not set 495# CONFIG_ACPI_CUSTOM_DSDT is not set
496# CONFIG_ACPI_INITRD_TABLE_OVERRIDE is not set
473CONFIG_ACPI_BLACKLIST_YEAR=0 497CONFIG_ACPI_BLACKLIST_YEAR=0
474# CONFIG_ACPI_DEBUG is not set 498# CONFIG_ACPI_DEBUG is not set
475CONFIG_ACPI_PCI_SLOT=m 499# CONFIG_ACPI_PCI_SLOT is not set
476CONFIG_X86_PM_TIMER=y 500CONFIG_X86_PM_TIMER=y
477CONFIG_ACPI_CONTAINER=m 501CONFIG_ACPI_CONTAINER=y
478CONFIG_ACPI_SBS=m 502CONFIG_ACPI_SBS=m
479CONFIG_ACPI_HED=m 503CONFIG_ACPI_HED=m
480# CONFIG_ACPI_CUSTOM_METHOD is not set 504# CONFIG_ACPI_CUSTOM_METHOD is not set
481CONFIG_ACPI_BGRT=m
482CONFIG_ACPI_APEI=y 505CONFIG_ACPI_APEI=y
483# CONFIG_ACPI_APEI_GHES is not set 506# CONFIG_ACPI_APEI_GHES is not set
484CONFIG_ACPI_APEI_EINJ=m 507CONFIG_ACPI_APEI_EINJ=m
@@ -490,6 +513,7 @@ CONFIG_ACPI_APEI_ERST_DEBUG=y
490# 513#
491CONFIG_CPU_FREQ=y 514CONFIG_CPU_FREQ=y
492CONFIG_CPU_FREQ_TABLE=m 515CONFIG_CPU_FREQ_TABLE=m
516CONFIG_CPU_FREQ_GOV_COMMON=y
493CONFIG_CPU_FREQ_STAT=m 517CONFIG_CPU_FREQ_STAT=m
494# CONFIG_CPU_FREQ_STAT_DETAILS is not set 518# CONFIG_CPU_FREQ_STAT_DETAILS is not set
495CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y 519CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
@@ -506,9 +530,12 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
506# 530#
507# x86 CPU frequency scaling drivers 531# x86 CPU frequency scaling drivers
508# 532#
533CONFIG_X86_INTEL_PSTATE=y
509CONFIG_X86_PCC_CPUFREQ=m 534CONFIG_X86_PCC_CPUFREQ=m
510CONFIG_X86_ACPI_CPUFREQ=m 535CONFIG_X86_ACPI_CPUFREQ=m
536CONFIG_X86_ACPI_CPUFREQ_CPB=y
511CONFIG_X86_POWERNOW_K8=m 537CONFIG_X86_POWERNOW_K8=m
538CONFIG_X86_AMD_FREQ_SENSITIVITY=m
512CONFIG_X86_SPEEDSTEP_CENTRINO=m 539CONFIG_X86_SPEEDSTEP_CENTRINO=m
513CONFIG_X86_P4_CLOCKMOD=m 540CONFIG_X86_P4_CLOCKMOD=m
514 541
@@ -517,8 +544,10 @@ CONFIG_X86_P4_CLOCKMOD=m
517# 544#
518CONFIG_X86_SPEEDSTEP_LIB=m 545CONFIG_X86_SPEEDSTEP_LIB=m
519CONFIG_CPU_IDLE=y 546CONFIG_CPU_IDLE=y
547# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set
520CONFIG_CPU_IDLE_GOV_LADDER=y 548CONFIG_CPU_IDLE_GOV_LADDER=y
521CONFIG_CPU_IDLE_GOV_MENU=y 549CONFIG_CPU_IDLE_GOV_MENU=y
550# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
522CONFIG_INTEL_IDLE=y 551CONFIG_INTEL_IDLE=y
523 552
524# 553#
@@ -561,9 +590,6 @@ CONFIG_ISA_DMA_API=y
561CONFIG_AMD_NB=y 590CONFIG_AMD_NB=y
562# CONFIG_PCCARD is not set 591# CONFIG_PCCARD is not set
563CONFIG_HOTPLUG_PCI=m 592CONFIG_HOTPLUG_PCI=m
564CONFIG_HOTPLUG_PCI_FAKE=m
565CONFIG_HOTPLUG_PCI_ACPI=m
566CONFIG_HOTPLUG_PCI_ACPI_IBM=m
567CONFIG_HOTPLUG_PCI_CPCI=y 593CONFIG_HOTPLUG_PCI_CPCI=y
568CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m 594CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
569CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m 595CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
@@ -577,8 +603,10 @@ CONFIG_BINFMT_ELF=y
577CONFIG_COMPAT_BINFMT_ELF=y 603CONFIG_COMPAT_BINFMT_ELF=y
578CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y 604CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
579# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 605# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
606CONFIG_BINFMT_SCRIPT=y
580# CONFIG_HAVE_AOUT is not set 607# CONFIG_HAVE_AOUT is not set
581CONFIG_BINFMT_MISC=m 608CONFIG_BINFMT_MISC=m
609CONFIG_COREDUMP=y
582CONFIG_IA32_EMULATION=y 610CONFIG_IA32_EMULATION=y
583# CONFIG_IA32_AOUT is not set 611# CONFIG_IA32_AOUT is not set
584# CONFIG_X86_X32 is not set 612# CONFIG_X86_X32 is not set
@@ -587,6 +615,7 @@ CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
587CONFIG_SYSVIPC_COMPAT=y 615CONFIG_SYSVIPC_COMPAT=y
588CONFIG_KEYS_COMPAT=y 616CONFIG_KEYS_COMPAT=y
589CONFIG_HAVE_TEXT_POKE_SMP=y 617CONFIG_HAVE_TEXT_POKE_SMP=y
618CONFIG_X86_DEV_DMA_OPS=y
590CONFIG_NET=y 619CONFIG_NET=y
591CONFIG_COMPAT_NETLINK_MESSAGES=y 620CONFIG_COMPAT_NETLINK_MESSAGES=y
592 621
@@ -594,9 +623,11 @@ CONFIG_COMPAT_NETLINK_MESSAGES=y
594# Networking options 623# Networking options
595# 624#
596CONFIG_PACKET=m 625CONFIG_PACKET=m
626CONFIG_PACKET_DIAG=m
597CONFIG_UNIX=y 627CONFIG_UNIX=y
598CONFIG_UNIX_DIAG=m 628CONFIG_UNIX_DIAG=m
599CONFIG_XFRM=y 629CONFIG_XFRM=y
630CONFIG_XFRM_ALGO=m
600CONFIG_XFRM_USER=m 631CONFIG_XFRM_USER=m
601CONFIG_XFRM_SUB_POLICY=y 632CONFIG_XFRM_SUB_POLICY=y
602CONFIG_XFRM_MIGRATE=y 633CONFIG_XFRM_MIGRATE=y
@@ -618,6 +649,7 @@ CONFIG_IP_PNP_BOOTP=y
618CONFIG_IP_PNP_RARP=y 649CONFIG_IP_PNP_RARP=y
619CONFIG_NET_IPIP=m 650CONFIG_NET_IPIP=m
620CONFIG_NET_IPGRE_DEMUX=y 651CONFIG_NET_IPGRE_DEMUX=y
652CONFIG_NET_IP_TUNNEL=m
621CONFIG_NET_IPGRE=m 653CONFIG_NET_IPGRE=m
622CONFIG_NET_IPGRE_BROADCAST=y 654CONFIG_NET_IPGRE_BROADCAST=y
623CONFIG_IP_MROUTE=y 655CONFIG_IP_MROUTE=y
@@ -626,6 +658,7 @@ CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
626CONFIG_IP_PIMSM_V2=y 658CONFIG_IP_PIMSM_V2=y
627CONFIG_ARPD=y 659CONFIG_ARPD=y
628CONFIG_SYN_COOKIES=y 660CONFIG_SYN_COOKIES=y
661# CONFIG_NET_IPVTI is not set
629CONFIG_INET_AH=m 662CONFIG_INET_AH=m
630CONFIG_INET_ESP=m 663CONFIG_INET_ESP=m
631CONFIG_INET_IPCOMP=m 664CONFIG_INET_IPCOMP=m
@@ -674,6 +707,7 @@ CONFIG_IPV6_SIT=m
674CONFIG_IPV6_SIT_6RD=y 707CONFIG_IPV6_SIT_6RD=y
675CONFIG_IPV6_NDISC_NODETYPE=y 708CONFIG_IPV6_NDISC_NODETYPE=y
676CONFIG_IPV6_TUNNEL=m 709CONFIG_IPV6_TUNNEL=m
710# CONFIG_IPV6_GRE is not set
677CONFIG_IPV6_MULTIPLE_TABLES=y 711CONFIG_IPV6_MULTIPLE_TABLES=y
678CONFIG_IPV6_SUBTREES=y 712CONFIG_IPV6_SUBTREES=y
679CONFIG_IPV6_MROUTE=y 713CONFIG_IPV6_MROUTE=y
@@ -719,6 +753,17 @@ CONFIG_NF_CONNTRACK_SIP=m
719CONFIG_NF_CONNTRACK_TFTP=m 753CONFIG_NF_CONNTRACK_TFTP=m
720CONFIG_NF_CT_NETLINK=m 754CONFIG_NF_CT_NETLINK=m
721CONFIG_NF_CT_NETLINK_TIMEOUT=m 755CONFIG_NF_CT_NETLINK_TIMEOUT=m
756# CONFIG_NETFILTER_NETLINK_QUEUE_CT is not set
757CONFIG_NF_NAT=m
758CONFIG_NF_NAT_NEEDED=y
759CONFIG_NF_NAT_PROTO_DCCP=m
760CONFIG_NF_NAT_PROTO_UDPLITE=m
761CONFIG_NF_NAT_PROTO_SCTP=m
762CONFIG_NF_NAT_AMANDA=m
763CONFIG_NF_NAT_FTP=m
764CONFIG_NF_NAT_IRC=m
765CONFIG_NF_NAT_SIP=m
766CONFIG_NF_NAT_TFTP=m
722CONFIG_NETFILTER_TPROXY=m 767CONFIG_NETFILTER_TPROXY=m
723CONFIG_NETFILTER_XTABLES=m 768CONFIG_NETFILTER_XTABLES=m
724 769
@@ -739,14 +784,17 @@ CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
739CONFIG_NETFILTER_XT_TARGET_CT=m 784CONFIG_NETFILTER_XT_TARGET_CT=m
740CONFIG_NETFILTER_XT_TARGET_DSCP=m 785CONFIG_NETFILTER_XT_TARGET_DSCP=m
741CONFIG_NETFILTER_XT_TARGET_HL=m 786CONFIG_NETFILTER_XT_TARGET_HL=m
787# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
742CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m 788CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
743CONFIG_NETFILTER_XT_TARGET_LED=m 789CONFIG_NETFILTER_XT_TARGET_LED=m
744CONFIG_NETFILTER_XT_TARGET_LOG=m 790CONFIG_NETFILTER_XT_TARGET_LOG=m
745CONFIG_NETFILTER_XT_TARGET_MARK=m 791CONFIG_NETFILTER_XT_TARGET_MARK=m
792CONFIG_NETFILTER_XT_TARGET_NETMAP=m
746CONFIG_NETFILTER_XT_TARGET_NFLOG=m 793CONFIG_NETFILTER_XT_TARGET_NFLOG=m
747CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 794CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
748CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 795CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
749CONFIG_NETFILTER_XT_TARGET_RATEEST=m 796CONFIG_NETFILTER_XT_TARGET_RATEEST=m
797CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
750CONFIG_NETFILTER_XT_TARGET_TEE=m 798CONFIG_NETFILTER_XT_TARGET_TEE=m
751CONFIG_NETFILTER_XT_TARGET_TPROXY=m 799CONFIG_NETFILTER_XT_TARGET_TPROXY=m
752CONFIG_NETFILTER_XT_TARGET_TRACE=m 800CONFIG_NETFILTER_XT_TARGET_TRACE=m
@@ -758,9 +806,11 @@ CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
758# Xtables matches 806# Xtables matches
759# 807#
760CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m 808CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
809# CONFIG_NETFILTER_XT_MATCH_BPF is not set
761CONFIG_NETFILTER_XT_MATCH_CLUSTER=m 810CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
762CONFIG_NETFILTER_XT_MATCH_COMMENT=m 811CONFIG_NETFILTER_XT_MATCH_COMMENT=m
763CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 812CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
813# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
764CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 814CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
765CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 815CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
766CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 816CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
@@ -858,7 +908,6 @@ CONFIG_IP_VS_PE_SIP=m
858CONFIG_NF_DEFRAG_IPV4=m 908CONFIG_NF_DEFRAG_IPV4=m
859CONFIG_NF_CONNTRACK_IPV4=m 909CONFIG_NF_CONNTRACK_IPV4=m
860CONFIG_NF_CONNTRACK_PROC_COMPAT=y 910CONFIG_NF_CONNTRACK_PROC_COMPAT=y
861CONFIG_IP_NF_QUEUE=m
862CONFIG_IP_NF_IPTABLES=m 911CONFIG_IP_NF_IPTABLES=m
863CONFIG_IP_NF_MATCH_AH=m 912CONFIG_IP_NF_MATCH_AH=m
864CONFIG_IP_NF_MATCH_ECN=m 913CONFIG_IP_NF_MATCH_ECN=m
@@ -867,23 +916,14 @@ CONFIG_IP_NF_MATCH_TTL=m
867CONFIG_IP_NF_FILTER=m 916CONFIG_IP_NF_FILTER=m
868CONFIG_IP_NF_TARGET_REJECT=m 917CONFIG_IP_NF_TARGET_REJECT=m
869CONFIG_IP_NF_TARGET_ULOG=m 918CONFIG_IP_NF_TARGET_ULOG=m
870CONFIG_NF_NAT=m 919CONFIG_NF_NAT_IPV4=m
871CONFIG_NF_NAT_NEEDED=y
872CONFIG_IP_NF_TARGET_MASQUERADE=m 920CONFIG_IP_NF_TARGET_MASQUERADE=m
873CONFIG_IP_NF_TARGET_NETMAP=m 921CONFIG_IP_NF_TARGET_NETMAP=m
874CONFIG_IP_NF_TARGET_REDIRECT=m 922CONFIG_IP_NF_TARGET_REDIRECT=m
875CONFIG_NF_NAT_SNMP_BASIC=m 923CONFIG_NF_NAT_SNMP_BASIC=m
876CONFIG_NF_NAT_PROTO_DCCP=m
877CONFIG_NF_NAT_PROTO_GRE=m 924CONFIG_NF_NAT_PROTO_GRE=m
878CONFIG_NF_NAT_PROTO_UDPLITE=m
879CONFIG_NF_NAT_PROTO_SCTP=m
880CONFIG_NF_NAT_FTP=m
881CONFIG_NF_NAT_IRC=m
882CONFIG_NF_NAT_TFTP=m
883CONFIG_NF_NAT_AMANDA=m
884CONFIG_NF_NAT_PPTP=m 925CONFIG_NF_NAT_PPTP=m
885CONFIG_NF_NAT_H323=m 926CONFIG_NF_NAT_H323=m
886CONFIG_NF_NAT_SIP=m
887CONFIG_IP_NF_MANGLE=m 927CONFIG_IP_NF_MANGLE=m
888CONFIG_IP_NF_TARGET_CLUSTERIP=m 928CONFIG_IP_NF_TARGET_CLUSTERIP=m
889CONFIG_IP_NF_TARGET_ECN=m 929CONFIG_IP_NF_TARGET_ECN=m
@@ -899,7 +939,6 @@ CONFIG_IP_NF_ARP_MANGLE=m
899# 939#
900CONFIG_NF_DEFRAG_IPV6=m 940CONFIG_NF_DEFRAG_IPV6=m
901CONFIG_NF_CONNTRACK_IPV6=m 941CONFIG_NF_CONNTRACK_IPV6=m
902CONFIG_IP6_NF_QUEUE=m
903CONFIG_IP6_NF_IPTABLES=m 942CONFIG_IP6_NF_IPTABLES=m
904CONFIG_IP6_NF_MATCH_AH=m 943CONFIG_IP6_NF_MATCH_AH=m
905CONFIG_IP6_NF_MATCH_EUI64=m 944CONFIG_IP6_NF_MATCH_EUI64=m
@@ -916,6 +955,7 @@ CONFIG_IP6_NF_TARGET_REJECT=m
916CONFIG_IP6_NF_MANGLE=m 955CONFIG_IP6_NF_MANGLE=m
917CONFIG_IP6_NF_RAW=m 956CONFIG_IP6_NF_RAW=m
918CONFIG_IP6_NF_SECURITY=m 957CONFIG_IP6_NF_SECURITY=m
958# CONFIG_NF_NAT_IPV6 is not set
919 959
920# 960#
921# DECnet: Netfilter Configuration 961# DECnet: Netfilter Configuration
@@ -947,7 +987,7 @@ CONFIG_IP_DCCP=m
947CONFIG_INET_DCCP_DIAG=m 987CONFIG_INET_DCCP_DIAG=m
948 988
949# 989#
950# DCCP CCIDs Configuration (EXPERIMENTAL) 990# DCCP CCIDs Configuration
951# 991#
952# CONFIG_IP_DCCP_CCID2_DEBUG is not set 992# CONFIG_IP_DCCP_CCID2_DEBUG is not set
953CONFIG_IP_DCCP_CCID3=y 993CONFIG_IP_DCCP_CCID3=y
@@ -963,16 +1003,18 @@ CONFIG_IP_SCTP=m
963CONFIG_NET_SCTPPROBE=m 1003CONFIG_NET_SCTPPROBE=m
964# CONFIG_SCTP_DBG_MSG is not set 1004# CONFIG_SCTP_DBG_MSG is not set
965# CONFIG_SCTP_DBG_OBJCNT is not set 1005# CONFIG_SCTP_DBG_OBJCNT is not set
966# CONFIG_SCTP_HMAC_NONE is not set 1006CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
967CONFIG_SCTP_HMAC_SHA1=y 1007# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
968# CONFIG_SCTP_HMAC_MD5 is not set 1008# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
1009CONFIG_SCTP_COOKIE_HMAC_MD5=y
1010CONFIG_SCTP_COOKIE_HMAC_SHA1=y
969CONFIG_RDS=m 1011CONFIG_RDS=m
970# CONFIG_RDS_RDMA is not set 1012# CONFIG_RDS_RDMA is not set
971# CONFIG_RDS_TCP is not set 1013# CONFIG_RDS_TCP is not set
972# CONFIG_RDS_DEBUG is not set 1014# CONFIG_RDS_DEBUG is not set
973CONFIG_TIPC=m 1015CONFIG_TIPC=m
974# CONFIG_TIPC_ADVANCED is not set 1016CONFIG_TIPC_PORTS=8191
975# CONFIG_TIPC_DEBUG is not set 1017# CONFIG_TIPC_MEDIA_IB is not set
976CONFIG_ATM=m 1018CONFIG_ATM=m
977CONFIG_ATM_CLIP=m 1019CONFIG_ATM_CLIP=m
978# CONFIG_ATM_CLIP_NO_ICMP is not set 1020# CONFIG_ATM_CLIP_NO_ICMP is not set
@@ -986,11 +1028,14 @@ CONFIG_L2TP_V3=y
986CONFIG_L2TP_IP=m 1028CONFIG_L2TP_IP=m
987CONFIG_L2TP_ETH=m 1029CONFIG_L2TP_ETH=m
988CONFIG_STP=m 1030CONFIG_STP=m
1031CONFIG_MRP=m
989CONFIG_BRIDGE=m 1032CONFIG_BRIDGE=m
990CONFIG_BRIDGE_IGMP_SNOOPING=y 1033CONFIG_BRIDGE_IGMP_SNOOPING=y
991# CONFIG_NET_DSA is not set 1034CONFIG_BRIDGE_VLAN_FILTERING=y
1035CONFIG_HAVE_NET_DSA=y
992CONFIG_VLAN_8021Q=m 1036CONFIG_VLAN_8021Q=m
993# CONFIG_VLAN_8021Q_GVRP is not set 1037# CONFIG_VLAN_8021Q_GVRP is not set
1038CONFIG_VLAN_8021Q_MVRP=y
994CONFIG_DECNET=m 1039CONFIG_DECNET=m
995CONFIG_DECNET_ROUTER=y 1040CONFIG_DECNET_ROUTER=y
996CONFIG_LLC=m 1041CONFIG_LLC=m
@@ -1001,14 +1046,12 @@ CONFIG_ATALK=m
1001CONFIG_DEV_APPLETALK=m 1046CONFIG_DEV_APPLETALK=m
1002CONFIG_IPDDP=m 1047CONFIG_IPDDP=m
1003CONFIG_IPDDP_ENCAP=y 1048CONFIG_IPDDP_ENCAP=y
1004CONFIG_IPDDP_DECAP=y
1005CONFIG_X25=m 1049CONFIG_X25=m
1006CONFIG_LAPB=m 1050CONFIG_LAPB=m
1007# CONFIG_ECONET is not set
1008CONFIG_WAN_ROUTER=m
1009# CONFIG_PHONET is not set 1051# CONFIG_PHONET is not set
1010CONFIG_IEEE802154=m 1052CONFIG_IEEE802154=m
1011CONFIG_IEEE802154_6LOWPAN=m 1053CONFIG_IEEE802154_6LOWPAN=m
1054CONFIG_MAC802154=m
1012CONFIG_NET_SCHED=y 1055CONFIG_NET_SCHED=y
1013 1056
1014# 1057#
@@ -1032,6 +1075,8 @@ CONFIG_NET_SCH_DRR=m
1032CONFIG_NET_SCH_MQPRIO=m 1075CONFIG_NET_SCH_MQPRIO=m
1033CONFIG_NET_SCH_CHOKE=m 1076CONFIG_NET_SCH_CHOKE=m
1034CONFIG_NET_SCH_QFQ=m 1077CONFIG_NET_SCH_QFQ=m
1078# CONFIG_NET_SCH_CODEL is not set
1079# CONFIG_NET_SCH_FQ_CODEL is not set
1035CONFIG_NET_SCH_INGRESS=m 1080CONFIG_NET_SCH_INGRESS=m
1036CONFIG_NET_SCH_PLUG=m 1081CONFIG_NET_SCH_PLUG=m
1037 1082
@@ -1057,6 +1102,7 @@ CONFIG_NET_EMATCH_NBYTE=m
1057CONFIG_NET_EMATCH_U32=m 1102CONFIG_NET_EMATCH_U32=m
1058CONFIG_NET_EMATCH_META=m 1103CONFIG_NET_EMATCH_META=m
1059CONFIG_NET_EMATCH_TEXT=m 1104CONFIG_NET_EMATCH_TEXT=m
1105CONFIG_NET_EMATCH_IPSET=m
1060CONFIG_NET_CLS_ACT=y 1106CONFIG_NET_CLS_ACT=y
1061CONFIG_NET_ACT_POLICE=m 1107CONFIG_NET_ACT_POLICE=m
1062CONFIG_NET_ACT_GACT=m 1108CONFIG_NET_ACT_GACT=m
@@ -1074,12 +1120,15 @@ CONFIG_NET_SCH_FIFO=y
1074CONFIG_DNS_RESOLVER=y 1120CONFIG_DNS_RESOLVER=y
1075# CONFIG_BATMAN_ADV is not set 1121# CONFIG_BATMAN_ADV is not set
1076CONFIG_OPENVSWITCH=m 1122CONFIG_OPENVSWITCH=m
1123CONFIG_VSOCKETS=m
1124CONFIG_VMWARE_VMCI_VSOCKETS=m
1125CONFIG_NETLINK_MMAP=y
1126CONFIG_NETLINK_DIAG=m
1077CONFIG_RPS=y 1127CONFIG_RPS=y
1078CONFIG_RFS_ACCEL=y 1128CONFIG_RFS_ACCEL=y
1079CONFIG_XPS=y 1129CONFIG_XPS=y
1080CONFIG_NETPRIO_CGROUP=m 1130CONFIG_NETPRIO_CGROUP=m
1081CONFIG_BQL=y 1131CONFIG_BQL=y
1082CONFIG_HAVE_BPF_JIT=y
1083CONFIG_BPF_JIT=y 1132CONFIG_BPF_JIT=y
1084 1133
1085# 1134#
@@ -1108,6 +1157,7 @@ CONFIG_BT_HCIUART_H4=y
1108CONFIG_BT_HCIUART_BCSP=y 1157CONFIG_BT_HCIUART_BCSP=y
1109CONFIG_BT_HCIUART_ATH3K=y 1158CONFIG_BT_HCIUART_ATH3K=y
1110CONFIG_BT_HCIUART_LL=y 1159CONFIG_BT_HCIUART_LL=y
1160# CONFIG_BT_HCIUART_3WIRE is not set
1111CONFIG_BT_HCIBCM203X=m 1161CONFIG_BT_HCIBCM203X=m
1112CONFIG_BT_HCIBPA10X=m 1162CONFIG_BT_HCIBPA10X=m
1113CONFIG_BT_HCIBFUSB=m 1163CONFIG_BT_HCIBFUSB=m
@@ -1130,11 +1180,11 @@ CONFIG_CFG80211=m
1130# CONFIG_NL80211_TESTMODE is not set 1180# CONFIG_NL80211_TESTMODE is not set
1131# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set 1181# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
1132# CONFIG_CFG80211_REG_DEBUG is not set 1182# CONFIG_CFG80211_REG_DEBUG is not set
1183# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
1133CONFIG_CFG80211_DEFAULT_PS=y 1184CONFIG_CFG80211_DEFAULT_PS=y
1134# CONFIG_CFG80211_DEBUGFS is not set 1185# CONFIG_CFG80211_DEBUGFS is not set
1135# CONFIG_CFG80211_INTERNAL_REGDB is not set 1186# CONFIG_CFG80211_INTERNAL_REGDB is not set
1136CONFIG_CFG80211_WEXT=y 1187CONFIG_CFG80211_WEXT=y
1137CONFIG_WIRELESS_EXT_SYSFS=y
1138CONFIG_LIB80211=m 1188CONFIG_LIB80211=m
1139CONFIG_LIB80211_CRYPT_WEP=m 1189CONFIG_LIB80211_CRYPT_WEP=m
1140CONFIG_LIB80211_CRYPT_CCMP=m 1190CONFIG_LIB80211_CRYPT_CCMP=m
@@ -1151,6 +1201,7 @@ CONFIG_MAC80211_RC_DEFAULT="pid"
1151# CONFIG_MAC80211_MESH is not set 1201# CONFIG_MAC80211_MESH is not set
1152CONFIG_MAC80211_LEDS=y 1202CONFIG_MAC80211_LEDS=y
1153# CONFIG_MAC80211_DEBUGFS is not set 1203# CONFIG_MAC80211_DEBUGFS is not set
1204# CONFIG_MAC80211_MESSAGE_TRACING is not set
1154# CONFIG_MAC80211_DEBUG_MENU is not set 1205# CONFIG_MAC80211_DEBUG_MENU is not set
1155CONFIG_WIMAX=m 1206CONFIG_WIMAX=m
1156CONFIG_WIMAX_DEBUG_LEVEL=8 1207CONFIG_WIMAX_DEBUG_LEVEL=8
@@ -1166,6 +1217,7 @@ CONFIG_CEPH_LIB=m
1166# CONFIG_CEPH_LIB_PRETTYDEBUG is not set 1217# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
1167# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set 1218# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
1168# CONFIG_NFC is not set 1219# CONFIG_NFC is not set
1220CONFIG_HAVE_BPF_JIT=y
1169 1221
1170# 1222#
1171# Device Drivers 1223# Device Drivers
@@ -1182,6 +1234,7 @@ CONFIG_STANDALONE=y
1182CONFIG_FW_LOADER=m 1234CONFIG_FW_LOADER=m
1183# CONFIG_FIRMWARE_IN_KERNEL is not set 1235# CONFIG_FIRMWARE_IN_KERNEL is not set
1184CONFIG_EXTRA_FIRMWARE="" 1236CONFIG_EXTRA_FIRMWARE=""
1237CONFIG_FW_LOADER_USER_HELPER=y
1185# CONFIG_DEBUG_DRIVER is not set 1238# CONFIG_DEBUG_DRIVER is not set
1186CONFIG_DEBUG_DEVRES=y 1239CONFIG_DEBUG_DEVRES=y
1187CONFIG_SYS_HYPERVISOR=y 1240CONFIG_SYS_HYPERVISOR=y
@@ -1189,7 +1242,12 @@ CONFIG_SYS_HYPERVISOR=y
1189CONFIG_REGMAP=y 1242CONFIG_REGMAP=y
1190CONFIG_REGMAP_I2C=m 1243CONFIG_REGMAP_I2C=m
1191CONFIG_REGMAP_SPI=m 1244CONFIG_REGMAP_SPI=m
1245CONFIG_REGMAP_MMIO=m
1192CONFIG_DMA_SHARED_BUFFER=y 1246CONFIG_DMA_SHARED_BUFFER=y
1247
1248#
1249# Bus devices
1250#
1193CONFIG_CONNECTOR=m 1251CONFIG_CONNECTOR=m
1194CONFIG_MTD=m 1252CONFIG_MTD=m
1195CONFIG_MTD_TESTS=m 1253CONFIG_MTD_TESTS=m
@@ -1197,13 +1255,12 @@ CONFIG_MTD_REDBOOT_PARTS=m
1197CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 1255CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
1198# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set 1256# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
1199# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set 1257# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
1258# CONFIG_MTD_CMDLINE_PARTS is not set
1200CONFIG_MTD_AR7_PARTS=m 1259CONFIG_MTD_AR7_PARTS=m
1201 1260
1202# 1261#
1203# User Modules And Translation Layers 1262# User Modules And Translation Layers
1204# 1263#
1205CONFIG_MTD_CHAR=m
1206CONFIG_HAVE_MTD_OTP=y
1207CONFIG_MTD_BLKDEVS=m 1264CONFIG_MTD_BLKDEVS=m
1208CONFIG_MTD_BLOCK=m 1265CONFIG_MTD_BLOCK=m
1209CONFIG_MTD_BLOCK_RO=m 1266CONFIG_MTD_BLOCK_RO=m
@@ -1287,25 +1344,14 @@ CONFIG_MTD_BLOCK2MTD=m
1287# 1344#
1288# Disk-On-Chip Device Drivers 1345# Disk-On-Chip Device Drivers
1289# 1346#
1290CONFIG_MTD_DOC2000=m
1291CONFIG_MTD_DOC2001=m
1292CONFIG_MTD_DOC2001PLUS=m
1293# CONFIG_MTD_DOCG3 is not set 1347# CONFIG_MTD_DOCG3 is not set
1294CONFIG_MTD_DOCPROBE=m
1295CONFIG_MTD_DOCECC=m
1296CONFIG_MTD_DOCPROBE_ADVANCED=y
1297CONFIG_MTD_DOCPROBE_ADDRESS=0x0000
1298# CONFIG_MTD_DOCPROBE_HIGH is not set
1299# CONFIG_MTD_DOCPROBE_55AA is not set
1300CONFIG_MTD_NAND_ECC=m 1348CONFIG_MTD_NAND_ECC=m
1301CONFIG_MTD_NAND_ECC_SMC=y 1349CONFIG_MTD_NAND_ECC_SMC=y
1302CONFIG_MTD_NAND=m 1350CONFIG_MTD_NAND=m
1303# CONFIG_MTD_NAND_VERIFY_WRITE is not set
1304# CONFIG_MTD_NAND_ECC_BCH is not set 1351# CONFIG_MTD_NAND_ECC_BCH is not set
1305CONFIG_MTD_SM_COMMON=m 1352CONFIG_MTD_SM_COMMON=m
1306# CONFIG_MTD_NAND_MUSEUM_IDS is not set
1307CONFIG_MTD_NAND_DENALI=m 1353CONFIG_MTD_NAND_DENALI=m
1308CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018 1354# CONFIG_MTD_NAND_DENALI_PCI is not set
1309CONFIG_MTD_NAND_IDS=m 1355CONFIG_MTD_NAND_IDS=m
1310CONFIG_MTD_NAND_RICOH=m 1356CONFIG_MTD_NAND_RICOH=m
1311CONFIG_MTD_NAND_DISKONCHIP=m 1357CONFIG_MTD_NAND_DISKONCHIP=m
@@ -1322,7 +1368,6 @@ CONFIG_MTD_ONENAND=m
1322# CONFIG_MTD_ONENAND_GENERIC is not set 1368# CONFIG_MTD_ONENAND_GENERIC is not set
1323CONFIG_MTD_ONENAND_OTP=y 1369CONFIG_MTD_ONENAND_OTP=y
1324CONFIG_MTD_ONENAND_2X_PROGRAM=y 1370CONFIG_MTD_ONENAND_2X_PROGRAM=y
1325CONFIG_MTD_ONENAND_SIM=m
1326 1371
1327# 1372#
1328# LPDDR flash memory drivers 1373# LPDDR flash memory drivers
@@ -1331,9 +1376,9 @@ CONFIG_MTD_LPDDR=m
1331CONFIG_MTD_QINFO_PROBE=m 1376CONFIG_MTD_QINFO_PROBE=m
1332CONFIG_MTD_UBI=m 1377CONFIG_MTD_UBI=m
1333CONFIG_MTD_UBI_WL_THRESHOLD=4096 1378CONFIG_MTD_UBI_WL_THRESHOLD=4096
1334CONFIG_MTD_UBI_BEB_RESERVE=1 1379CONFIG_MTD_UBI_BEB_LIMIT=20
1380# CONFIG_MTD_UBI_FASTMAP is not set
1335# CONFIG_MTD_UBI_GLUEBI is not set 1381# CONFIG_MTD_UBI_GLUEBI is not set
1336# CONFIG_MTD_UBI_DEBUG is not set
1337CONFIG_PARPORT=m 1382CONFIG_PARPORT=m
1338CONFIG_PARPORT_PC=m 1383CONFIG_PARPORT_PC=m
1339CONFIG_PARPORT_SERIAL=m 1384CONFIG_PARPORT_SERIAL=m
@@ -1370,7 +1415,6 @@ CONFIG_BLK_DEV_NBD=m
1370CONFIG_BLK_DEV_NVME=m 1415CONFIG_BLK_DEV_NVME=m
1371CONFIG_BLK_DEV_OSD=m 1416CONFIG_BLK_DEV_OSD=m
1372CONFIG_BLK_DEV_SX8=m 1417CONFIG_BLK_DEV_SX8=m
1373CONFIG_BLK_DEV_UB=m
1374CONFIG_BLK_DEV_RAM=y 1418CONFIG_BLK_DEV_RAM=y
1375CONFIG_BLK_DEV_RAM_COUNT=16 1419CONFIG_BLK_DEV_RAM_COUNT=16
1376CONFIG_BLK_DEV_RAM_SIZE=4096 1420CONFIG_BLK_DEV_RAM_SIZE=4096
@@ -1384,6 +1428,7 @@ CONFIG_XEN_BLKDEV_BACKEND=m
1384CONFIG_VIRTIO_BLK=m 1428CONFIG_VIRTIO_BLK=m
1385# CONFIG_BLK_DEV_HD is not set 1429# CONFIG_BLK_DEV_HD is not set
1386# CONFIG_BLK_DEV_RBD is not set 1430# CONFIG_BLK_DEV_RBD is not set
1431CONFIG_BLK_DEV_RSXX=m
1387 1432
1388# 1433#
1389# Misc devices 1434# Misc devices
@@ -1392,6 +1437,7 @@ CONFIG_SENSORS_LIS3LV02D=m
1392CONFIG_AD525X_DPOT=m 1437CONFIG_AD525X_DPOT=m
1393CONFIG_AD525X_DPOT_I2C=m 1438CONFIG_AD525X_DPOT_I2C=m
1394CONFIG_AD525X_DPOT_SPI=m 1439CONFIG_AD525X_DPOT_SPI=m
1440# CONFIG_DUMMY_IRQ is not set
1395CONFIG_IBM_ASM=m 1441CONFIG_IBM_ASM=m
1396CONFIG_PHANTOM=m 1442CONFIG_PHANTOM=m
1397# CONFIG_INTEL_MID_PTI is not set 1443# CONFIG_INTEL_MID_PTI is not set
@@ -1399,6 +1445,7 @@ CONFIG_SGI_IOC4=m
1399CONFIG_TIFM_CORE=m 1445CONFIG_TIFM_CORE=m
1400CONFIG_TIFM_7XX1=m 1446CONFIG_TIFM_7XX1=m
1401CONFIG_ICS932S401=m 1447CONFIG_ICS932S401=m
1448# CONFIG_ATMEL_SSC is not set
1402CONFIG_ENCLOSURE_SERVICES=m 1449CONFIG_ENCLOSURE_SERVICES=m
1403CONFIG_CS5535_MFGPT=m 1450CONFIG_CS5535_MFGPT=m
1404CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7 1451CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
@@ -1415,9 +1462,12 @@ CONFIG_HMC6352=m
1415CONFIG_DS1682=m 1462CONFIG_DS1682=m
1416CONFIG_TI_DAC7512=m 1463CONFIG_TI_DAC7512=m
1417CONFIG_VMWARE_BALLOON=m 1464CONFIG_VMWARE_BALLOON=m
1418CONFIG_BMP085=m 1465# CONFIG_BMP085_I2C is not set
1466# CONFIG_BMP085_SPI is not set
1419CONFIG_PCH_PHUB=m 1467CONFIG_PCH_PHUB=m
1420# CONFIG_USB_SWITCH_FSA9480 is not set 1468# CONFIG_USB_SWITCH_FSA9480 is not set
1469# CONFIG_LATTICE_ECP3_CONFIG is not set
1470# CONFIG_SRAM is not set
1421CONFIG_C2PORT=m 1471CONFIG_C2PORT=m
1422CONFIG_C2PORT_DURAMAR_2150=m 1472CONFIG_C2PORT_DURAMAR_2150=m
1423 1473
@@ -1433,9 +1483,6 @@ CONFIG_EEPROM_93XX46=m
1433CONFIG_CB710_CORE=m 1483CONFIG_CB710_CORE=m
1434# CONFIG_CB710_DEBUG is not set 1484# CONFIG_CB710_DEBUG is not set
1435CONFIG_CB710_DEBUG_ASSUMPTIONS=y 1485CONFIG_CB710_DEBUG_ASSUMPTIONS=y
1436CONFIG_IWMC3200TOP=m
1437# CONFIG_IWMC3200TOP_DEBUG is not set
1438# CONFIG_IWMC3200TOP_DEBUGFS is not set
1439 1486
1440# 1487#
1441# Texas Instruments shared transport line discipline 1488# Texas Instruments shared transport line discipline
@@ -1447,6 +1494,9 @@ CONFIG_SENSORS_LIS3_I2C=m
1447# Altera FPGA firmware download module 1494# Altera FPGA firmware download module
1448# 1495#
1449# CONFIG_ALTERA_STAPL is not set 1496# CONFIG_ALTERA_STAPL is not set
1497# CONFIG_INTEL_MEI is not set
1498# CONFIG_INTEL_MEI_ME is not set
1499CONFIG_VMWARE_VMCI=m
1450CONFIG_HAVE_IDE=y 1500CONFIG_HAVE_IDE=y
1451# CONFIG_IDE is not set 1501# CONFIG_IDE is not set
1452 1502
@@ -1476,7 +1526,6 @@ CONFIG_SCSI_MULTI_LUN=y
1476# CONFIG_SCSI_CONSTANTS is not set 1526# CONFIG_SCSI_CONSTANTS is not set
1477# CONFIG_SCSI_LOGGING is not set 1527# CONFIG_SCSI_LOGGING is not set
1478CONFIG_SCSI_SCAN_ASYNC=y 1528CONFIG_SCSI_SCAN_ASYNC=y
1479CONFIG_SCSI_WAIT_SCAN=m
1480 1529
1481# 1530#
1482# SCSI Transports 1531# SCSI Transports
@@ -1537,7 +1586,12 @@ CONFIG_MEGARAID_SAS=m
1537CONFIG_SCSI_MPT2SAS=m 1586CONFIG_SCSI_MPT2SAS=m
1538CONFIG_SCSI_MPT2SAS_MAX_SGE=128 1587CONFIG_SCSI_MPT2SAS_MAX_SGE=128
1539# CONFIG_SCSI_MPT2SAS_LOGGING is not set 1588# CONFIG_SCSI_MPT2SAS_LOGGING is not set
1589CONFIG_SCSI_MPT3SAS=m
1590CONFIG_SCSI_MPT3SAS_MAX_SGE=128
1591# CONFIG_SCSI_MPT3SAS_LOGGING is not set
1540CONFIG_SCSI_UFSHCD=m 1592CONFIG_SCSI_UFSHCD=m
1593CONFIG_SCSI_UFSHCD_PCI=m
1594CONFIG_SCSI_UFSHCD_PLATFORM=m
1541CONFIG_SCSI_HPTIOP=m 1595CONFIG_SCSI_HPTIOP=m
1542CONFIG_SCSI_BUSLOGIC=m 1596CONFIG_SCSI_BUSLOGIC=m
1543CONFIG_VMWARE_PVSCSI=m 1597CONFIG_VMWARE_PVSCSI=m
@@ -1570,6 +1624,7 @@ CONFIG_SCSI_IPR_TRACE=y
1570# CONFIG_SCSI_IPR_DUMP is not set 1624# CONFIG_SCSI_IPR_DUMP is not set
1571CONFIG_SCSI_QLOGIC_1280=m 1625CONFIG_SCSI_QLOGIC_1280=m
1572CONFIG_SCSI_QLA_FC=m 1626CONFIG_SCSI_QLA_FC=m
1627CONFIG_TCM_QLA2XXX=m
1573CONFIG_SCSI_QLA_ISCSI=m 1628CONFIG_SCSI_QLA_ISCSI=m
1574CONFIG_SCSI_LPFC=m 1629CONFIG_SCSI_LPFC=m
1575# CONFIG_SCSI_LPFC_DEBUG_FS is not set 1630# CONFIG_SCSI_LPFC_DEBUG_FS is not set
@@ -1581,6 +1636,7 @@ CONFIG_SCSI_PM8001=m
1581CONFIG_SCSI_SRP=m 1636CONFIG_SCSI_SRP=m
1582# CONFIG_SCSI_BFA_FC is not set 1637# CONFIG_SCSI_BFA_FC is not set
1583CONFIG_SCSI_VIRTIO=m 1638CONFIG_SCSI_VIRTIO=m
1639# CONFIG_SCSI_CHELSIO_FCOE is not set
1584CONFIG_SCSI_DH=m 1640CONFIG_SCSI_DH=m
1585CONFIG_SCSI_DH_RDAC=m 1641CONFIG_SCSI_DH_RDAC=m
1586CONFIG_SCSI_DH_HP_SW=m 1642CONFIG_SCSI_DH_HP_SW=m
@@ -1594,6 +1650,7 @@ CONFIG_ATA=m
1594# CONFIG_ATA_NONSTANDARD is not set 1650# CONFIG_ATA_NONSTANDARD is not set
1595CONFIG_ATA_VERBOSE_ERROR=y 1651CONFIG_ATA_VERBOSE_ERROR=y
1596CONFIG_ATA_ACPI=y 1652CONFIG_ATA_ACPI=y
1653# CONFIG_SATA_ZPODD is not set
1597CONFIG_SATA_PMP=y 1654CONFIG_SATA_PMP=y
1598 1655
1599# 1656#
@@ -1618,6 +1675,7 @@ CONFIG_ATA_BMDMA=y
1618# SATA SFF controllers with BMDMA 1675# SATA SFF controllers with BMDMA
1619# 1676#
1620CONFIG_ATA_PIIX=m 1677CONFIG_ATA_PIIX=m
1678CONFIG_SATA_HIGHBANK=m
1621CONFIG_SATA_MV=m 1679CONFIG_SATA_MV=m
1622CONFIG_SATA_NV=m 1680CONFIG_SATA_NV=m
1623CONFIG_SATA_PROMISE=m 1681CONFIG_SATA_PROMISE=m
@@ -1695,18 +1753,24 @@ CONFIG_MD_RAID0=m
1695CONFIG_MD_RAID1=m 1753CONFIG_MD_RAID1=m
1696CONFIG_MD_RAID10=m 1754CONFIG_MD_RAID10=m
1697CONFIG_MD_RAID456=m 1755CONFIG_MD_RAID456=m
1698# CONFIG_MULTICORE_RAID456 is not set
1699CONFIG_MD_MULTIPATH=m 1756CONFIG_MD_MULTIPATH=m
1700CONFIG_MD_FAULTY=m 1757CONFIG_MD_FAULTY=m
1758CONFIG_BCACHE=m
1759# CONFIG_BCACHE_DEBUG is not set
1760# CONFIG_BCACHE_EDEBUG is not set
1761# CONFIG_BCACHE_CLOSURES_DEBUG is not set
1701CONFIG_BLK_DEV_DM=m 1762CONFIG_BLK_DEV_DM=m
1702# CONFIG_DM_DEBUG is not set 1763# CONFIG_DM_DEBUG is not set
1703CONFIG_DM_BUFIO=m 1764CONFIG_DM_BUFIO=m
1765CONFIG_DM_BIO_PRISON=m
1704CONFIG_DM_PERSISTENT_DATA=m 1766CONFIG_DM_PERSISTENT_DATA=m
1705CONFIG_DM_CRYPT=m 1767CONFIG_DM_CRYPT=m
1706CONFIG_DM_SNAPSHOT=m 1768CONFIG_DM_SNAPSHOT=m
1707CONFIG_DM_THIN_PROVISIONING=m 1769CONFIG_DM_THIN_PROVISIONING=m
1708# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set 1770# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
1709# CONFIG_DM_DEBUG_SPACE_MAPS is not set 1771CONFIG_DM_CACHE=m
1772CONFIG_DM_CACHE_MQ=m
1773CONFIG_DM_CACHE_CLEANER=m
1710CONFIG_DM_MIRROR=m 1774CONFIG_DM_MIRROR=m
1711CONFIG_DM_RAID=m 1775CONFIG_DM_RAID=m
1712CONFIG_DM_LOG_USERSPACE=m 1776CONFIG_DM_LOG_USERSPACE=m
@@ -1725,6 +1789,7 @@ CONFIG_TCM_PSCSI=m
1725CONFIG_LOOPBACK_TARGET=m 1789CONFIG_LOOPBACK_TARGET=m
1726CONFIG_TCM_FC=m 1790CONFIG_TCM_FC=m
1727CONFIG_ISCSI_TARGET=m 1791CONFIG_ISCSI_TARGET=m
1792CONFIG_SBP_TARGET=m
1728CONFIG_FUSION=y 1793CONFIG_FUSION=y
1729CONFIG_FUSION_SPI=m 1794CONFIG_FUSION_SPI=m
1730CONFIG_FUSION_FC=m 1795CONFIG_FUSION_FC=m
@@ -1759,14 +1824,16 @@ CONFIG_DUMMY=m
1759CONFIG_EQUALIZER=m 1824CONFIG_EQUALIZER=m
1760# CONFIG_NET_FC is not set 1825# CONFIG_NET_FC is not set
1761CONFIG_MII=m 1826CONFIG_MII=m
1762CONFIG_IEEE802154_DRIVERS=m
1763CONFIG_IEEE802154_FAKEHARD=m
1764CONFIG_IFB=m 1827CONFIG_IFB=m
1765CONFIG_NET_TEAM=m 1828CONFIG_NET_TEAM=m
1829CONFIG_NET_TEAM_MODE_BROADCAST=m
1766CONFIG_NET_TEAM_MODE_ROUNDROBIN=m 1830CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
1831CONFIG_NET_TEAM_MODE_RANDOM=m
1767CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 1832CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
1833CONFIG_NET_TEAM_MODE_LOADBALANCE=m
1768CONFIG_MACVLAN=m 1834CONFIG_MACVLAN=m
1769CONFIG_MACVTAP=m 1835CONFIG_MACVTAP=m
1836CONFIG_VXLAN=m
1770CONFIG_NETCONSOLE=m 1837CONFIG_NETCONSOLE=m
1771CONFIG_NETCONSOLE_DYNAMIC=y 1838CONFIG_NETCONSOLE_DYNAMIC=y
1772CONFIG_NETPOLL=y 1839CONFIG_NETPOLL=y
@@ -1820,6 +1887,18 @@ CONFIG_ATM_SOLOS=m
1820# 1887#
1821# CAIF transport drivers 1888# CAIF transport drivers
1822# 1889#
1890CONFIG_VHOST_NET=m
1891CONFIG_VHOST_SCSI=m
1892CONFIG_VHOST_RING=m
1893
1894#
1895# Distributed Switch Architecture drivers
1896#
1897# CONFIG_NET_DSA_MV88E6XXX is not set
1898# CONFIG_NET_DSA_MV88E6060 is not set
1899# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
1900# CONFIG_NET_DSA_MV88E6131 is not set
1901# CONFIG_NET_DSA_MV88E6123_61_65 is not set
1823CONFIG_ETHERNET=y 1902CONFIG_ETHERNET=y
1824CONFIG_MDIO=m 1903CONFIG_MDIO=m
1825CONFIG_NET_VENDOR_3COM=y 1904CONFIG_NET_VENDOR_3COM=y
@@ -1838,6 +1917,10 @@ CONFIG_ATL2=m
1838CONFIG_ATL1=m 1917CONFIG_ATL1=m
1839CONFIG_ATL1E=m 1918CONFIG_ATL1E=m
1840CONFIG_ATL1C=m 1919CONFIG_ATL1C=m
1920CONFIG_ALX=m
1921CONFIG_NET_CADENCE=y
1922CONFIG_ARM_AT91_ETHER=m
1923CONFIG_MACB=m
1841CONFIG_NET_VENDOR_BROADCOM=y 1924CONFIG_NET_VENDOR_BROADCOM=y
1842CONFIG_B44=m 1925CONFIG_B44=m
1843CONFIG_B44_PCI_AUTOSELECT=y 1926CONFIG_B44_PCI_AUTOSELECT=y
@@ -1847,6 +1930,7 @@ CONFIG_BNX2=m
1847CONFIG_CNIC=m 1930CONFIG_CNIC=m
1848CONFIG_TIGON3=m 1931CONFIG_TIGON3=m
1849CONFIG_BNX2X=m 1932CONFIG_BNX2X=m
1933CONFIG_BNX2X_SRIOV=y
1850CONFIG_NET_VENDOR_BROCADE=y 1934CONFIG_NET_VENDOR_BROCADE=y
1851CONFIG_BNA=m 1935CONFIG_BNA=m
1852CONFIG_NET_CALXEDA_XGMAC=m 1936CONFIG_NET_CALXEDA_XGMAC=m
@@ -1872,8 +1956,6 @@ CONFIG_WINBOND_840=m
1872CONFIG_DM9102=m 1956CONFIG_DM9102=m
1873CONFIG_ULI526X=m 1957CONFIG_ULI526X=m
1874CONFIG_NET_VENDOR_DLINK=y 1958CONFIG_NET_VENDOR_DLINK=y
1875CONFIG_DE600=m
1876CONFIG_DE620=m
1877CONFIG_DL2K=m 1959CONFIG_DL2K=m
1878CONFIG_SUNDANCE=m 1960CONFIG_SUNDANCE=m
1879# CONFIG_SUNDANCE_MMIO is not set 1961# CONFIG_SUNDANCE_MMIO is not set
@@ -1890,17 +1972,19 @@ CONFIG_E100=m
1890CONFIG_E1000=m 1972CONFIG_E1000=m
1891CONFIG_E1000E=m 1973CONFIG_E1000E=m
1892CONFIG_IGB=m 1974CONFIG_IGB=m
1975CONFIG_IGB_HWMON=y
1893CONFIG_IGB_DCA=y 1976CONFIG_IGB_DCA=y
1894CONFIG_IGBVF=m 1977CONFIG_IGBVF=m
1895CONFIG_IXGB=m 1978CONFIG_IXGB=m
1896CONFIG_IXGBE=m 1979CONFIG_IXGBE=m
1980CONFIG_IXGBE_HWMON=y
1897CONFIG_IXGBE_DCA=y 1981CONFIG_IXGBE_DCA=y
1898# CONFIG_IXGBEVF is not set 1982# CONFIG_IXGBEVF is not set
1899CONFIG_NET_VENDOR_I825XX=y 1983CONFIG_NET_VENDOR_I825XX=y
1900# CONFIG_ZNET is not set
1901CONFIG_IP1000=m 1984CONFIG_IP1000=m
1902CONFIG_JME=m 1985CONFIG_JME=m
1903CONFIG_NET_VENDOR_MARVELL=y 1986CONFIG_NET_VENDOR_MARVELL=y
1987# CONFIG_MVMDIO is not set
1904CONFIG_SKGE=m 1988CONFIG_SKGE=m
1905# CONFIG_SKGE_DEBUG is not set 1989# CONFIG_SKGE_DEBUG is not set
1906CONFIG_SKGE_GENESIS=y 1990CONFIG_SKGE_GENESIS=y
@@ -1938,6 +2022,7 @@ CONFIG_YELLOWFIN=m
1938CONFIG_NET_VENDOR_QLOGIC=y 2022CONFIG_NET_VENDOR_QLOGIC=y
1939CONFIG_QLA3XXX=m 2023CONFIG_QLA3XXX=m
1940CONFIG_QLCNIC=m 2024CONFIG_QLCNIC=m
2025CONFIG_QLCNIC_SRIOV=y
1941CONFIG_QLGE=m 2026CONFIG_QLGE=m
1942CONFIG_NETXEN_NIC=m 2027CONFIG_NETXEN_NIC=m
1943CONFIG_NET_VENDOR_REALTEK=y 2028CONFIG_NET_VENDOR_REALTEK=y
@@ -1952,7 +2037,6 @@ CONFIG_R8169=m
1952CONFIG_NET_VENDOR_RDC=y 2037CONFIG_NET_VENDOR_RDC=y
1953CONFIG_R6040=m 2038CONFIG_R6040=m
1954CONFIG_NET_VENDOR_SEEQ=y 2039CONFIG_NET_VENDOR_SEEQ=y
1955CONFIG_SEEQ8005=m
1956CONFIG_NET_VENDOR_SILAN=y 2040CONFIG_NET_VENDOR_SILAN=y
1957CONFIG_SC92031=m 2041CONFIG_SC92031=m
1958CONFIG_NET_VENDOR_SIS=y 2042CONFIG_NET_VENDOR_SIS=y
@@ -1971,8 +2055,6 @@ CONFIG_STMMAC_ETH=m
1971# CONFIG_STMMAC_PCI is not set 2055# CONFIG_STMMAC_PCI is not set
1972# CONFIG_STMMAC_DEBUG_FS is not set 2056# CONFIG_STMMAC_DEBUG_FS is not set
1973# CONFIG_STMMAC_DA is not set 2057# CONFIG_STMMAC_DA is not set
1974CONFIG_STMMAC_RING=y
1975# CONFIG_STMMAC_CHAINED is not set
1976CONFIG_NET_VENDOR_SUN=y 2058CONFIG_NET_VENDOR_SUN=y
1977CONFIG_HAPPYMEAL=m 2059CONFIG_HAPPYMEAL=m
1978CONFIG_SUNGEM=m 2060CONFIG_SUNGEM=m
@@ -1986,6 +2068,9 @@ CONFIG_NET_VENDOR_VIA=y
1986CONFIG_VIA_RHINE=m 2068CONFIG_VIA_RHINE=m
1987# CONFIG_VIA_RHINE_MMIO is not set 2069# CONFIG_VIA_RHINE_MMIO is not set
1988CONFIG_VIA_VELOCITY=m 2070CONFIG_VIA_VELOCITY=m
2071CONFIG_NET_VENDOR_WIZNET=y
2072# CONFIG_WIZNET_W5100 is not set
2073# CONFIG_WIZNET_W5300 is not set
1989CONFIG_FDDI=y 2074CONFIG_FDDI=y
1990CONFIG_DEFXX=m 2075CONFIG_DEFXX=m
1991# CONFIG_DEFXX_MMIO is not set 2076# CONFIG_DEFXX_MMIO is not set
@@ -1999,6 +2084,7 @@ CONFIG_PHYLIB=m
1999# 2084#
2000# MII PHY device drivers 2085# MII PHY device drivers
2001# 2086#
2087# CONFIG_AT803X_PHY is not set
2002CONFIG_AMD_PHY=m 2088CONFIG_AMD_PHY=m
2003CONFIG_MARVELL_PHY=m 2089CONFIG_MARVELL_PHY=m
2004CONFIG_DAVICOM_PHY=m 2090CONFIG_DAVICOM_PHY=m
@@ -2008,6 +2094,7 @@ CONFIG_CICADA_PHY=m
2008CONFIG_VITESSE_PHY=m 2094CONFIG_VITESSE_PHY=m
2009CONFIG_SMSC_PHY=m 2095CONFIG_SMSC_PHY=m
2010CONFIG_BROADCOM_PHY=m 2096CONFIG_BROADCOM_PHY=m
2097# CONFIG_BCM87XX_PHY is not set
2011CONFIG_ICPLUS_PHY=m 2098CONFIG_ICPLUS_PHY=m
2012CONFIG_REALTEK_PHY=m 2099CONFIG_REALTEK_PHY=m
2013CONFIG_NATIONAL_PHY=m 2100CONFIG_NATIONAL_PHY=m
@@ -2035,7 +2122,6 @@ CONFIG_SLHC=m
2035CONFIG_SLIP_COMPRESSED=y 2122CONFIG_SLIP_COMPRESSED=y
2036CONFIG_SLIP_SMART=y 2123CONFIG_SLIP_SMART=y
2037CONFIG_SLIP_MODE_SLIP6=y 2124CONFIG_SLIP_MODE_SLIP6=y
2038# CONFIG_TR is not set
2039 2125
2040# 2126#
2041# USB Network Adapters 2127# USB Network Adapters
@@ -2044,11 +2130,14 @@ CONFIG_USB_CATC=m
2044CONFIG_USB_KAWETH=m 2130CONFIG_USB_KAWETH=m
2045CONFIG_USB_PEGASUS=m 2131CONFIG_USB_PEGASUS=m
2046CONFIG_USB_RTL8150=m 2132CONFIG_USB_RTL8150=m
2133# CONFIG_USB_RTL8152 is not set
2047CONFIG_USB_USBNET=m 2134CONFIG_USB_USBNET=m
2048CONFIG_USB_NET_AX8817X=m 2135CONFIG_USB_NET_AX8817X=m
2136CONFIG_USB_NET_AX88179_178A=m
2049CONFIG_USB_NET_CDCETHER=m 2137CONFIG_USB_NET_CDCETHER=m
2050CONFIG_USB_NET_CDC_EEM=m 2138CONFIG_USB_NET_CDC_EEM=m
2051CONFIG_USB_NET_CDC_NCM=m 2139CONFIG_USB_NET_CDC_NCM=m
2140# CONFIG_USB_NET_CDC_MBIM is not set
2052CONFIG_USB_NET_DM9601=m 2141CONFIG_USB_NET_DM9601=m
2053CONFIG_USB_NET_SMSC75XX=m 2142CONFIG_USB_NET_SMSC75XX=m
2054CONFIG_USB_NET_SMSC95XX=m 2143CONFIG_USB_NET_SMSC95XX=m
@@ -2090,30 +2179,7 @@ CONFIG_RTL8187_LEDS=y
2090CONFIG_ADM8211=m 2179CONFIG_ADM8211=m
2091CONFIG_MAC80211_HWSIM=m 2180CONFIG_MAC80211_HWSIM=m
2092CONFIG_MWL8K=m 2181CONFIG_MWL8K=m
2093CONFIG_ATH_COMMON=m 2182# CONFIG_ATH_CARDS is not set
2094# CONFIG_ATH_DEBUG is not set
2095CONFIG_ATH5K=m
2096# CONFIG_ATH5K_DEBUG is not set
2097CONFIG_ATH5K_PCI=y
2098CONFIG_ATH9K_HW=m
2099CONFIG_ATH9K_COMMON=m
2100CONFIG_ATH9K_BTCOEX_SUPPORT=y
2101CONFIG_ATH9K=m
2102CONFIG_ATH9K_PCI=y
2103CONFIG_ATH9K_AHB=y
2104# CONFIG_ATH9K_DEBUGFS is not set
2105# CONFIG_ATH9K_DFS_CERTIFIED is not set
2106# CONFIG_ATH9K_LEGACY_RATE_CONTROL is not set
2107CONFIG_ATH9K_HTC=m
2108# CONFIG_ATH9K_HTC_DEBUGFS is not set
2109CONFIG_CARL9170=m
2110CONFIG_CARL9170_LEDS=y
2111CONFIG_CARL9170_WPC=y
2112CONFIG_CARL9170_HWRNG=y
2113CONFIG_ATH6KL=m
2114CONFIG_ATH6KL_SDIO=m
2115CONFIG_ATH6KL_USB=m
2116CONFIG_ATH6KL_DEBUG=y
2117CONFIG_B43=m 2183CONFIG_B43=m
2118CONFIG_B43_SSB=y 2184CONFIG_B43_SSB=y
2119CONFIG_B43_PCI_AUTOSELECT=y 2185CONFIG_B43_PCI_AUTOSELECT=y
@@ -2122,7 +2188,6 @@ CONFIG_B43_SDIO=y
2122CONFIG_B43_PIO=y 2188CONFIG_B43_PIO=y
2123CONFIG_B43_PHY_N=y 2189CONFIG_B43_PHY_N=y
2124CONFIG_B43_PHY_LP=y 2190CONFIG_B43_PHY_LP=y
2125CONFIG_B43_PHY_HT=y
2126CONFIG_B43_LEDS=y 2191CONFIG_B43_LEDS=y
2127CONFIG_B43_HWRNG=y 2192CONFIG_B43_HWRNG=y
2128# CONFIG_B43_DEBUG is not set 2193# CONFIG_B43_DEBUG is not set
@@ -2155,13 +2220,15 @@ CONFIG_IPW2200_QOS=y
2155CONFIG_LIBIPW=m 2220CONFIG_LIBIPW=m
2156# CONFIG_LIBIPW_DEBUG is not set 2221# CONFIG_LIBIPW_DEBUG is not set
2157CONFIG_IWLWIFI=m 2222CONFIG_IWLWIFI=m
2223CONFIG_IWLDVM=m
2224# CONFIG_IWLMVM is not set
2225CONFIG_IWLWIFI_OPMODE_MODULAR=y
2158 2226
2159# 2227#
2160# Debugging Options 2228# Debugging Options
2161# 2229#
2162# CONFIG_IWLWIFI_DEBUG is not set 2230# CONFIG_IWLWIFI_DEBUG is not set
2163# CONFIG_IWLWIFI_P2P is not set 2231# CONFIG_IWLWIFI_P2P is not set
2164# CONFIG_IWLWIFI_EXPERIMENTAL_MFP is not set
2165CONFIG_IWLEGACY=m 2232CONFIG_IWLEGACY=m
2166CONFIG_IWL4965=m 2233CONFIG_IWL4965=m
2167CONFIG_IWL3945=m 2234CONFIG_IWL3945=m
@@ -2170,8 +2237,6 @@ CONFIG_IWL3945=m
2170# iwl3945 / iwl4965 Debugging Options 2237# iwl3945 / iwl4965 Debugging Options
2171# 2238#
2172# CONFIG_IWLEGACY_DEBUG is not set 2239# CONFIG_IWLEGACY_DEBUG is not set
2173CONFIG_IWM=m
2174# CONFIG_IWM_DEBUG is not set
2175CONFIG_LIBERTAS=m 2240CONFIG_LIBERTAS=m
2176CONFIG_LIBERTAS_USB=m 2241CONFIG_LIBERTAS_USB=m
2177CONFIG_LIBERTAS_SDIO=m 2242CONFIG_LIBERTAS_SDIO=m
@@ -2199,14 +2264,17 @@ CONFIG_RT2800PCI=m
2199CONFIG_RT2800PCI_RT33XX=y 2264CONFIG_RT2800PCI_RT33XX=y
2200# CONFIG_RT2800PCI_RT35XX is not set 2265# CONFIG_RT2800PCI_RT35XX is not set
2201CONFIG_RT2800PCI_RT53XX=y 2266CONFIG_RT2800PCI_RT53XX=y
2267CONFIG_RT2800PCI_RT3290=y
2202CONFIG_RT2500USB=m 2268CONFIG_RT2500USB=m
2203CONFIG_RT73USB=m 2269CONFIG_RT73USB=m
2204CONFIG_RT2800USB=m 2270CONFIG_RT2800USB=m
2205CONFIG_RT2800USB_RT33XX=y 2271CONFIG_RT2800USB_RT33XX=y
2206# CONFIG_RT2800USB_RT35XX is not set 2272# CONFIG_RT2800USB_RT35XX is not set
2207CONFIG_RT2800USB_RT53XX=y 2273CONFIG_RT2800USB_RT53XX=y
2274# CONFIG_RT2800USB_RT55XX is not set
2208CONFIG_RT2800USB_UNKNOWN=y 2275CONFIG_RT2800USB_UNKNOWN=y
2209CONFIG_RT2800_LIB=m 2276CONFIG_RT2800_LIB=m
2277CONFIG_RT2X00_LIB_MMIO=m
2210CONFIG_RT2X00_LIB_PCI=m 2278CONFIG_RT2X00_LIB_PCI=m
2211CONFIG_RT2X00_LIB_USB=m 2279CONFIG_RT2X00_LIB_USB=m
2212CONFIG_RT2X00_LIB=m 2280CONFIG_RT2X00_LIB=m
@@ -2214,34 +2282,28 @@ CONFIG_RT2X00_LIB_FIRMWARE=y
2214CONFIG_RT2X00_LIB_CRYPTO=y 2282CONFIG_RT2X00_LIB_CRYPTO=y
2215CONFIG_RT2X00_LIB_LEDS=y 2283CONFIG_RT2X00_LIB_LEDS=y
2216# CONFIG_RT2X00_DEBUG is not set 2284# CONFIG_RT2X00_DEBUG is not set
2285CONFIG_RTLWIFI=m
2286# CONFIG_RTLWIFI_DEBUG is not set
2217CONFIG_RTL8192CE=m 2287CONFIG_RTL8192CE=m
2218CONFIG_RTL8192SE=m 2288CONFIG_RTL8192SE=m
2219CONFIG_RTL8192DE=m 2289CONFIG_RTL8192DE=m
2290# CONFIG_RTL8723AE is not set
2291# CONFIG_RTL8188EE is not set
2220CONFIG_RTL8192CU=m 2292CONFIG_RTL8192CU=m
2221CONFIG_RTLWIFI=m
2222# CONFIG_RTLWIFI_DEBUG is not set
2223CONFIG_RTL8192C_COMMON=m 2293CONFIG_RTL8192C_COMMON=m
2224CONFIG_WL1251=m 2294# CONFIG_WL_TI is not set
2225CONFIG_WL1251_SPI=m
2226CONFIG_WL1251_SDIO=m
2227CONFIG_WL12XX_MENU=m
2228CONFIG_WL12XX=m
2229CONFIG_WL12XX_SPI=m
2230CONFIG_WL12XX_SDIO=m
2231CONFIG_WL12XX_PLATFORM_DATA=y
2232CONFIG_ZD1211RW=m 2295CONFIG_ZD1211RW=m
2233# CONFIG_ZD1211RW_DEBUG is not set 2296# CONFIG_ZD1211RW_DEBUG is not set
2234CONFIG_MWIFIEX=m 2297CONFIG_MWIFIEX=m
2235CONFIG_MWIFIEX_SDIO=m 2298CONFIG_MWIFIEX_SDIO=m
2236CONFIG_MWIFIEX_PCIE=m 2299CONFIG_MWIFIEX_PCIE=m
2300# CONFIG_MWIFIEX_USB is not set
2237 2301
2238# 2302#
2239# WiMAX Wireless Broadband devices 2303# WiMAX Wireless Broadband devices
2240# 2304#
2241CONFIG_WIMAX_I2400M=m 2305CONFIG_WIMAX_I2400M=m
2242CONFIG_WIMAX_I2400M_USB=m 2306CONFIG_WIMAX_I2400M_USB=m
2243CONFIG_WIMAX_I2400M_SDIO=m
2244CONFIG_WIMAX_IWMC3200_SDIO=y
2245CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 2307CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
2246CONFIG_WAN=y 2308CONFIG_WAN=y
2247CONFIG_LANMEDIA=m 2309CONFIG_LANMEDIA=m
@@ -2262,13 +2324,15 @@ CONFIG_DSCC4_PCISYNC=y
2262CONFIG_DSCC4_PCI_RST=y 2324CONFIG_DSCC4_PCI_RST=y
2263CONFIG_DLCI=m 2325CONFIG_DLCI=m
2264CONFIG_DLCI_MAX=8 2326CONFIG_DLCI_MAX=8
2265CONFIG_WAN_ROUTER_DRIVERS=m
2266CONFIG_CYCLADES_SYNC=m
2267CONFIG_CYCLOMX_X25=y
2268CONFIG_LAPBETHER=m 2327CONFIG_LAPBETHER=m
2269CONFIG_X25_ASY=m 2328CONFIG_X25_ASY=m
2270CONFIG_SBNI=m 2329CONFIG_SBNI=m
2271CONFIG_SBNI_MULTILINE=y 2330CONFIG_SBNI_MULTILINE=y
2331CONFIG_IEEE802154_DRIVERS=m
2332# CONFIG_IEEE802154_FAKEHARD is not set
2333# CONFIG_IEEE802154_FAKELB is not set
2334# CONFIG_IEEE802154_AT86RF230 is not set
2335# CONFIG_IEEE802154_MRF24J40 is not set
2272CONFIG_XEN_NETDEV_FRONTEND=y 2336CONFIG_XEN_NETDEV_FRONTEND=y
2273CONFIG_XEN_NETDEV_BACKEND=m 2337CONFIG_XEN_NETDEV_BACKEND=m
2274CONFIG_VMXNET3=m 2338CONFIG_VMXNET3=m
@@ -2282,6 +2346,7 @@ CONFIG_INPUT=y
2282CONFIG_INPUT_FF_MEMLESS=m 2346CONFIG_INPUT_FF_MEMLESS=m
2283CONFIG_INPUT_POLLDEV=m 2347CONFIG_INPUT_POLLDEV=m
2284CONFIG_INPUT_SPARSEKMAP=m 2348CONFIG_INPUT_SPARSEKMAP=m
2349# CONFIG_INPUT_MATRIXKMAP is not set
2285 2350
2286# 2351#
2287# Userland interfaces 2352# Userland interfaces
@@ -2310,6 +2375,7 @@ CONFIG_KEYBOARD_ATKBD=y
2310# CONFIG_KEYBOARD_TCA8418 is not set 2375# CONFIG_KEYBOARD_TCA8418 is not set
2311# CONFIG_KEYBOARD_MATRIX is not set 2376# CONFIG_KEYBOARD_MATRIX is not set
2312# CONFIG_KEYBOARD_LM8323 is not set 2377# CONFIG_KEYBOARD_LM8323 is not set
2378# CONFIG_KEYBOARD_LM8333 is not set
2313# CONFIG_KEYBOARD_MAX7359 is not set 2379# CONFIG_KEYBOARD_MAX7359 is not set
2314# CONFIG_KEYBOARD_MCS is not set 2380# CONFIG_KEYBOARD_MCS is not set
2315# CONFIG_KEYBOARD_MPR121 is not set 2381# CONFIG_KEYBOARD_MPR121 is not set
@@ -2317,13 +2383,13 @@ CONFIG_KEYBOARD_ATKBD=y
2317# CONFIG_KEYBOARD_OPENCORES is not set 2383# CONFIG_KEYBOARD_OPENCORES is not set
2318# CONFIG_KEYBOARD_STOWAWAY is not set 2384# CONFIG_KEYBOARD_STOWAWAY is not set
2319# CONFIG_KEYBOARD_SUNKBD is not set 2385# CONFIG_KEYBOARD_SUNKBD is not set
2320# CONFIG_KEYBOARD_OMAP4 is not set
2321# CONFIG_KEYBOARD_XTKBD is not set 2386# CONFIG_KEYBOARD_XTKBD is not set
2322CONFIG_INPUT_MOUSE=y 2387CONFIG_INPUT_MOUSE=y
2323CONFIG_MOUSE_PS2=m 2388CONFIG_MOUSE_PS2=m
2324CONFIG_MOUSE_PS2_ALPS=y 2389CONFIG_MOUSE_PS2_ALPS=y
2325CONFIG_MOUSE_PS2_LOGIPS2PP=y 2390CONFIG_MOUSE_PS2_LOGIPS2PP=y
2326CONFIG_MOUSE_PS2_SYNAPTICS=y 2391CONFIG_MOUSE_PS2_SYNAPTICS=y
2392CONFIG_MOUSE_PS2_CYPRESS=y
2327CONFIG_MOUSE_PS2_LIFEBOOK=y 2393CONFIG_MOUSE_PS2_LIFEBOOK=y
2328CONFIG_MOUSE_PS2_TRACKPOINT=y 2394CONFIG_MOUSE_PS2_TRACKPOINT=y
2329# CONFIG_MOUSE_PS2_ELANTECH is not set 2395# CONFIG_MOUSE_PS2_ELANTECH is not set
@@ -2332,6 +2398,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
2332CONFIG_MOUSE_SERIAL=m 2398CONFIG_MOUSE_SERIAL=m
2333CONFIG_MOUSE_APPLETOUCH=m 2399CONFIG_MOUSE_APPLETOUCH=m
2334CONFIG_MOUSE_BCM5974=m 2400CONFIG_MOUSE_BCM5974=m
2401# CONFIG_MOUSE_CYAPA is not set
2335CONFIG_MOUSE_VSXXXAA=m 2402CONFIG_MOUSE_VSXXXAA=m
2336CONFIG_MOUSE_GPIO=m 2403CONFIG_MOUSE_GPIO=m
2337CONFIG_MOUSE_SYNAPTICS_I2C=m 2404CONFIG_MOUSE_SYNAPTICS_I2C=m
@@ -2352,18 +2419,20 @@ CONFIG_TOUCHSCREEN_CY8CTMG110=m
2352CONFIG_TOUCHSCREEN_DYNAPRO=m 2419CONFIG_TOUCHSCREEN_DYNAPRO=m
2353CONFIG_TOUCHSCREEN_HAMPSHIRE=m 2420CONFIG_TOUCHSCREEN_HAMPSHIRE=m
2354CONFIG_TOUCHSCREEN_EETI=m 2421CONFIG_TOUCHSCREEN_EETI=m
2355CONFIG_TOUCHSCREEN_EGALAX=m
2356CONFIG_TOUCHSCREEN_FUJITSU=m 2422CONFIG_TOUCHSCREEN_FUJITSU=m
2357# CONFIG_TOUCHSCREEN_ILI210X is not set 2423# CONFIG_TOUCHSCREEN_ILI210X is not set
2358CONFIG_TOUCHSCREEN_GUNZE=m 2424CONFIG_TOUCHSCREEN_GUNZE=m
2359CONFIG_TOUCHSCREEN_ELO=m 2425CONFIG_TOUCHSCREEN_ELO=m
2360CONFIG_TOUCHSCREEN_WACOM_W8001=m 2426CONFIG_TOUCHSCREEN_WACOM_W8001=m
2427# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
2361# CONFIG_TOUCHSCREEN_MAX11801 is not set 2428# CONFIG_TOUCHSCREEN_MAX11801 is not set
2362# CONFIG_TOUCHSCREEN_MCS5000 is not set 2429# CONFIG_TOUCHSCREEN_MCS5000 is not set
2430# CONFIG_TOUCHSCREEN_MMS114 is not set
2363CONFIG_TOUCHSCREEN_MTOUCH=m 2431CONFIG_TOUCHSCREEN_MTOUCH=m
2364CONFIG_TOUCHSCREEN_INEXIO=m 2432CONFIG_TOUCHSCREEN_INEXIO=m
2365CONFIG_TOUCHSCREEN_MK712=m 2433CONFIG_TOUCHSCREEN_MK712=m
2366CONFIG_TOUCHSCREEN_PENMOUNT=m 2434CONFIG_TOUCHSCREEN_PENMOUNT=m
2435# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
2367CONFIG_TOUCHSCREEN_TOUCHRIGHT=m 2436CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
2368CONFIG_TOUCHSCREEN_TOUCHWIN=m 2437CONFIG_TOUCHSCREEN_TOUCHWIN=m
2369CONFIG_TOUCHSCREEN_UCB1400=m 2438CONFIG_TOUCHSCREEN_UCB1400=m
@@ -2373,7 +2442,6 @@ CONFIG_TOUCHSCREEN_WM9705=y
2373CONFIG_TOUCHSCREEN_WM9712=y 2442CONFIG_TOUCHSCREEN_WM9712=y
2374CONFIG_TOUCHSCREEN_WM9713=y 2443CONFIG_TOUCHSCREEN_WM9713=y
2375CONFIG_TOUCHSCREEN_USB_COMPOSITE=m 2444CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
2376# CONFIG_TOUCHSCREEN_MC13783 is not set
2377CONFIG_TOUCHSCREEN_USB_EGALAX=y 2445CONFIG_TOUCHSCREEN_USB_EGALAX=y
2378CONFIG_TOUCHSCREEN_USB_PANJIT=y 2446CONFIG_TOUCHSCREEN_USB_PANJIT=y
2379CONFIG_TOUCHSCREEN_USB_3M=y 2447CONFIG_TOUCHSCREEN_USB_3M=y
@@ -2404,7 +2472,6 @@ CONFIG_INPUT_AD714X_I2C=m
2404CONFIG_INPUT_AD714X_SPI=m 2472CONFIG_INPUT_AD714X_SPI=m
2405# CONFIG_INPUT_BMA150 is not set 2473# CONFIG_INPUT_BMA150 is not set
2406CONFIG_INPUT_PCSPKR=m 2474CONFIG_INPUT_PCSPKR=m
2407# CONFIG_INPUT_MC13783_PWRBUTTON is not set
2408CONFIG_INPUT_MMA8450=m 2475CONFIG_INPUT_MMA8450=m
2409CONFIG_INPUT_MPU3050=m 2476CONFIG_INPUT_MPU3050=m
2410CONFIG_INPUT_APANEL=m 2477CONFIG_INPUT_APANEL=m
@@ -2425,6 +2492,7 @@ CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
2425CONFIG_INPUT_ADXL34X=m 2492CONFIG_INPUT_ADXL34X=m
2426CONFIG_INPUT_ADXL34X_I2C=m 2493CONFIG_INPUT_ADXL34X_I2C=m
2427CONFIG_INPUT_ADXL34X_SPI=m 2494CONFIG_INPUT_ADXL34X_SPI=m
2495# CONFIG_INPUT_IMS_PCU is not set
2428CONFIG_INPUT_CMA3000=m 2496CONFIG_INPUT_CMA3000=m
2429CONFIG_INPUT_CMA3000_I2C=m 2497CONFIG_INPUT_CMA3000_I2C=m
2430CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m 2498CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
@@ -2442,11 +2510,13 @@ CONFIG_SERIO_LIBPS2=y
2442CONFIG_SERIO_RAW=m 2510CONFIG_SERIO_RAW=m
2443CONFIG_SERIO_ALTERA_PS2=m 2511CONFIG_SERIO_ALTERA_PS2=m
2444CONFIG_SERIO_PS2MULT=m 2512CONFIG_SERIO_PS2MULT=m
2513# CONFIG_SERIO_ARC_PS2 is not set
2445# CONFIG_GAMEPORT is not set 2514# CONFIG_GAMEPORT is not set
2446 2515
2447# 2516#
2448# Character devices 2517# Character devices
2449# 2518#
2519CONFIG_TTY=y
2450CONFIG_VT=y 2520CONFIG_VT=y
2451CONFIG_CONSOLE_TRANSLATIONS=y 2521CONFIG_CONSOLE_TRANSLATIONS=y
2452CONFIG_VT_CONSOLE=y 2522CONFIG_VT_CONSOLE=y
@@ -2477,10 +2547,12 @@ CONFIG_STALDRV=y
2477# Serial drivers 2547# Serial drivers
2478# 2548#
2479CONFIG_SERIAL_8250=y 2549CONFIG_SERIAL_8250=y
2550CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
2551CONFIG_SERIAL_8250_PNP=y
2480CONFIG_SERIAL_8250_CONSOLE=y 2552CONFIG_SERIAL_8250_CONSOLE=y
2481CONFIG_FIX_EARLYCON_MEM=y 2553CONFIG_FIX_EARLYCON_MEM=y
2554CONFIG_SERIAL_8250_DMA=y
2482CONFIG_SERIAL_8250_PCI=y 2555CONFIG_SERIAL_8250_PCI=y
2483CONFIG_SERIAL_8250_PNP=y
2484CONFIG_SERIAL_8250_NR_UARTS=16 2556CONFIG_SERIAL_8250_NR_UARTS=16
2485CONFIG_SERIAL_8250_RUNTIME_UARTS=4 2557CONFIG_SERIAL_8250_RUNTIME_UARTS=4
2486CONFIG_SERIAL_8250_EXTENDED=y 2558CONFIG_SERIAL_8250_EXTENDED=y
@@ -2488,18 +2560,20 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
2488CONFIG_SERIAL_8250_SHARE_IRQ=y 2560CONFIG_SERIAL_8250_SHARE_IRQ=y
2489# CONFIG_SERIAL_8250_DETECT_IRQ is not set 2561# CONFIG_SERIAL_8250_DETECT_IRQ is not set
2490CONFIG_SERIAL_8250_RSA=y 2562CONFIG_SERIAL_8250_RSA=y
2563# CONFIG_SERIAL_8250_DW is not set
2491 2564
2492# 2565#
2493# Non-8250 serial port support 2566# Non-8250 serial port support
2494# 2567#
2495CONFIG_SERIAL_MAX3100=m 2568CONFIG_SERIAL_MAX3100=m
2496CONFIG_SERIAL_MAX3107=m 2569# CONFIG_SERIAL_MAX310X is not set
2497CONFIG_SERIAL_MRST_MAX3110=m 2570CONFIG_SERIAL_MRST_MAX3110=m
2498CONFIG_SERIAL_MFD_HSU=m 2571CONFIG_SERIAL_MFD_HSU=m
2499# CONFIG_SERIAL_UARTLITE is not set 2572# CONFIG_SERIAL_UARTLITE is not set
2500CONFIG_SERIAL_CORE=y 2573CONFIG_SERIAL_CORE=y
2501CONFIG_SERIAL_CORE_CONSOLE=y 2574CONFIG_SERIAL_CORE_CONSOLE=y
2502CONFIG_SERIAL_JSM=m 2575CONFIG_SERIAL_JSM=m
2576# CONFIG_SERIAL_SCCNXP is not set
2503CONFIG_SERIAL_TIMBERDALE=m 2577CONFIG_SERIAL_TIMBERDALE=m
2504CONFIG_SERIAL_ALTERA_JTAGUART=m 2578CONFIG_SERIAL_ALTERA_JTAGUART=m
2505CONFIG_SERIAL_ALTERA_UART=m 2579CONFIG_SERIAL_ALTERA_UART=m
@@ -2507,7 +2581,8 @@ CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
2507CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 2581CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
2508CONFIG_SERIAL_IFX6X60=m 2582CONFIG_SERIAL_IFX6X60=m
2509CONFIG_SERIAL_PCH_UART=m 2583CONFIG_SERIAL_PCH_UART=m
2510# CONFIG_SERIAL_XILINX_PS_UART is not set 2584# CONFIG_SERIAL_ARC is not set
2585# CONFIG_SERIAL_RP2 is not set
2511# CONFIG_TTY_PRINTK is not set 2586# CONFIG_TTY_PRINTK is not set
2512CONFIG_PRINTER=m 2587CONFIG_PRINTER=m
2513# CONFIG_LP_CONSOLE is not set 2588# CONFIG_LP_CONSOLE is not set
@@ -2529,6 +2604,7 @@ CONFIG_HW_RANDOM_INTEL=m
2529CONFIG_HW_RANDOM_AMD=m 2604CONFIG_HW_RANDOM_AMD=m
2530CONFIG_HW_RANDOM_VIA=m 2605CONFIG_HW_RANDOM_VIA=m
2531CONFIG_HW_RANDOM_VIRTIO=m 2606CONFIG_HW_RANDOM_VIRTIO=m
2607CONFIG_HW_RANDOM_TPM=m
2532CONFIG_NVRAM=m 2608CONFIG_NVRAM=m
2533CONFIG_R3964=m 2609CONFIG_R3964=m
2534CONFIG_APPLICOM=m 2610CONFIG_APPLICOM=m
@@ -2540,12 +2616,13 @@ CONFIG_HPET_MMAP=y
2540CONFIG_HANGCHECK_TIMER=m 2616CONFIG_HANGCHECK_TIMER=m
2541CONFIG_TCG_TPM=m 2617CONFIG_TCG_TPM=m
2542CONFIG_TCG_TIS=m 2618CONFIG_TCG_TIS=m
2619# CONFIG_TCG_TIS_I2C_INFINEON is not set
2543CONFIG_TCG_NSC=m 2620CONFIG_TCG_NSC=m
2544CONFIG_TCG_ATMEL=m 2621CONFIG_TCG_ATMEL=m
2545CONFIG_TCG_INFINEON=m 2622CONFIG_TCG_INFINEON=m
2623# CONFIG_TCG_ST33_I2C is not set
2546CONFIG_TELCLOCK=m 2624CONFIG_TELCLOCK=m
2547CONFIG_DEVPORT=y 2625CONFIG_DEVPORT=y
2548CONFIG_RAMOOPS=m
2549CONFIG_I2C=m 2626CONFIG_I2C=m
2550CONFIG_I2C_BOARDINFO=y 2627CONFIG_I2C_BOARDINFO=y
2551CONFIG_I2C_COMPAT=y 2628CONFIG_I2C_COMPAT=y
@@ -2578,6 +2655,7 @@ CONFIG_I2C_AMD756_S4882=m
2578CONFIG_I2C_AMD8111=m 2655CONFIG_I2C_AMD8111=m
2579CONFIG_I2C_I801=m 2656CONFIG_I2C_I801=m
2580CONFIG_I2C_ISCH=m 2657CONFIG_I2C_ISCH=m
2658# CONFIG_I2C_ISMT is not set
2581CONFIG_I2C_PIIX4=m 2659CONFIG_I2C_PIIX4=m
2582CONFIG_I2C_NFORCE2=m 2660CONFIG_I2C_NFORCE2=m
2583CONFIG_I2C_NFORCE2_S4985=m 2661CONFIG_I2C_NFORCE2_S4985=m
@@ -2595,6 +2673,7 @@ CONFIG_I2C_SCMI=m
2595# 2673#
2596# I2C system bus drivers (mostly embedded / system-on-chip) 2674# I2C system bus drivers (mostly embedded / system-on-chip)
2597# 2675#
2676# CONFIG_I2C_CBUS_GPIO is not set
2598# CONFIG_I2C_DESIGNWARE_PCI is not set 2677# CONFIG_I2C_DESIGNWARE_PCI is not set
2599CONFIG_I2C_EG20T=m 2678CONFIG_I2C_EG20T=m
2600CONFIG_I2C_GPIO=m 2679CONFIG_I2C_GPIO=m
@@ -2634,8 +2713,11 @@ CONFIG_SPI_BUTTERFLY=m
2634CONFIG_SPI_GPIO=m 2713CONFIG_SPI_GPIO=m
2635CONFIG_SPI_LM70_LLP=m 2714CONFIG_SPI_LM70_LLP=m
2636# CONFIG_SPI_OC_TINY is not set 2715# CONFIG_SPI_OC_TINY is not set
2716# CONFIG_SPI_PXA2XX is not set
2637# CONFIG_SPI_PXA2XX_PCI is not set 2717# CONFIG_SPI_PXA2XX_PCI is not set
2718# CONFIG_SPI_SC18IS602 is not set
2638CONFIG_SPI_TOPCLIFF_PCH=m 2719CONFIG_SPI_TOPCLIFF_PCH=m
2720# CONFIG_SPI_XCOMM is not set
2639# CONFIG_SPI_XILINX is not set 2721# CONFIG_SPI_XILINX is not set
2640CONFIG_SPI_DESIGNWARE=m 2722CONFIG_SPI_DESIGNWARE=m
2641CONFIG_SPI_DW_PCI=m 2723CONFIG_SPI_DW_PCI=m
@@ -2645,26 +2727,41 @@ CONFIG_SPI_DW_PCI=m
2645# 2727#
2646CONFIG_SPI_SPIDEV=m 2728CONFIG_SPI_SPIDEV=m
2647CONFIG_SPI_TLE62X0=m 2729CONFIG_SPI_TLE62X0=m
2730
2731#
2732# Qualcomm MSM SSBI bus support
2733#
2734# CONFIG_SSBI is not set
2648# CONFIG_HSI is not set 2735# CONFIG_HSI is not set
2649 2736
2650# 2737#
2651# PPS support 2738# PPS support
2652# 2739#
2653# CONFIG_PPS is not set 2740CONFIG_PPS=m
2741# CONFIG_PPS_DEBUG is not set
2654 2742
2655# 2743#
2656# PPS generators support 2744# PPS clients support
2657# 2745#
2746# CONFIG_PPS_CLIENT_KTIMER is not set
2747# CONFIG_PPS_CLIENT_LDISC is not set
2748# CONFIG_PPS_CLIENT_PARPORT is not set
2749# CONFIG_PPS_CLIENT_GPIO is not set
2658 2750
2659# 2751#
2660# PTP clock support 2752# PPS generators support
2661# 2753#
2662 2754
2663# 2755#
2664# Enable Device Drivers -> PPS to see the PTP clock options. 2756# PTP clock support
2665# 2757#
2758CONFIG_PTP_1588_CLOCK=m
2759# CONFIG_DP83640_PHY is not set
2760CONFIG_PTP_1588_CLOCK_PCH=m
2666CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 2761CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
2762CONFIG_GPIO_DEVRES=y
2667CONFIG_GPIOLIB=y 2763CONFIG_GPIOLIB=y
2764CONFIG_GPIO_ACPI=y
2668# CONFIG_DEBUG_GPIO is not set 2765# CONFIG_DEBUG_GPIO is not set
2669# CONFIG_GPIO_SYSFS is not set 2766# CONFIG_GPIO_SYSFS is not set
2670CONFIG_GPIO_MAX730X=m 2767CONFIG_GPIO_MAX730X=m
@@ -2674,8 +2771,11 @@ CONFIG_GPIO_MAX730X=m
2674# 2771#
2675# CONFIG_GPIO_GENERIC_PLATFORM is not set 2772# CONFIG_GPIO_GENERIC_PLATFORM is not set
2676CONFIG_GPIO_IT8761E=m 2773CONFIG_GPIO_IT8761E=m
2774# CONFIG_GPIO_TS5500 is not set
2677CONFIG_GPIO_SCH=m 2775CONFIG_GPIO_SCH=m
2776# CONFIG_GPIO_ICH is not set
2678CONFIG_GPIO_VX855=m 2777CONFIG_GPIO_VX855=m
2778# CONFIG_GPIO_LYNXPOINT is not set
2679 2779
2680# 2780#
2681# I2C GPIO expanders: 2781# I2C GPIO expanders:
@@ -2691,6 +2791,7 @@ CONFIG_GPIO_ADP5588=m
2691# 2791#
2692CONFIG_GPIO_CS5535=m 2792CONFIG_GPIO_CS5535=m
2693# CONFIG_GPIO_BT8XX is not set 2793# CONFIG_GPIO_BT8XX is not set
2794# CONFIG_GPIO_AMD8111 is not set
2694# CONFIG_GPIO_LANGWELL is not set 2795# CONFIG_GPIO_LANGWELL is not set
2695CONFIG_GPIO_PCH=m 2796CONFIG_GPIO_PCH=m
2696CONFIG_GPIO_ML_IOH=m 2797CONFIG_GPIO_ML_IOH=m
@@ -2714,6 +2815,10 @@ CONFIG_GPIO_74X164=m
2714# MODULbus GPIO expanders: 2815# MODULbus GPIO expanders:
2715# 2816#
2716# CONFIG_GPIO_JANZ_TTL is not set 2817# CONFIG_GPIO_JANZ_TTL is not set
2818
2819#
2820# USB GPIO expanders:
2821#
2717# CONFIG_W1 is not set 2822# CONFIG_W1 is not set
2718CONFIG_POWER_SUPPLY=y 2823CONFIG_POWER_SUPPLY=y
2719# CONFIG_POWER_SUPPLY_DEBUG is not set 2824# CONFIG_POWER_SUPPLY_DEBUG is not set
@@ -2731,7 +2836,11 @@ CONFIG_POWER_SUPPLY=y
2731# CONFIG_CHARGER_MAX8903 is not set 2836# CONFIG_CHARGER_MAX8903 is not set
2732# CONFIG_CHARGER_LP8727 is not set 2837# CONFIG_CHARGER_LP8727 is not set
2733# CONFIG_CHARGER_GPIO is not set 2838# CONFIG_CHARGER_GPIO is not set
2839# CONFIG_CHARGER_BQ2415X is not set
2734# CONFIG_CHARGER_SMB347 is not set 2840# CONFIG_CHARGER_SMB347 is not set
2841# CONFIG_BATTERY_GOLDFISH is not set
2842# CONFIG_POWER_RESET is not set
2843# CONFIG_POWER_AVS is not set
2735CONFIG_HWMON=m 2844CONFIG_HWMON=m
2736CONFIG_HWMON_VID=m 2845CONFIG_HWMON_VID=m
2737# CONFIG_HWMON_DEBUG_CHIP is not set 2846# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2751,6 +2860,8 @@ CONFIG_SENSORS_ADM1026=m
2751CONFIG_SENSORS_ADM1029=m 2860CONFIG_SENSORS_ADM1029=m
2752CONFIG_SENSORS_ADM1031=m 2861CONFIG_SENSORS_ADM1031=m
2753CONFIG_SENSORS_ADM9240=m 2862CONFIG_SENSORS_ADM9240=m
2863# CONFIG_SENSORS_ADT7310 is not set
2864# CONFIG_SENSORS_ADT7410 is not set
2754CONFIG_SENSORS_ADT7411=m 2865CONFIG_SENSORS_ADT7411=m
2755CONFIG_SENSORS_ADT7462=m 2866CONFIG_SENSORS_ADT7462=m
2756CONFIG_SENSORS_ADT7470=m 2867CONFIG_SENSORS_ADT7470=m
@@ -2772,6 +2883,7 @@ CONFIG_SENSORS_G760A=m
2772CONFIG_SENSORS_GL518SM=m 2883CONFIG_SENSORS_GL518SM=m
2773CONFIG_SENSORS_GL520SM=m 2884CONFIG_SENSORS_GL520SM=m
2774CONFIG_SENSORS_GPIO_FAN=m 2885CONFIG_SENSORS_GPIO_FAN=m
2886# CONFIG_SENSORS_HIH6130 is not set
2775CONFIG_SENSORS_CORETEMP=m 2887CONFIG_SENSORS_CORETEMP=m
2776CONFIG_SENSORS_IBMAEM=m 2888CONFIG_SENSORS_IBMAEM=m
2777CONFIG_SENSORS_IBMPEX=m 2889CONFIG_SENSORS_IBMPEX=m
@@ -2795,16 +2907,20 @@ CONFIG_SENSORS_LTC4151=m
2795CONFIG_SENSORS_LTC4215=m 2907CONFIG_SENSORS_LTC4215=m
2796CONFIG_SENSORS_LTC4245=m 2908CONFIG_SENSORS_LTC4245=m
2797CONFIG_SENSORS_LTC4261=m 2909CONFIG_SENSORS_LTC4261=m
2910# CONFIG_SENSORS_LM95234 is not set
2798CONFIG_SENSORS_LM95241=m 2911CONFIG_SENSORS_LM95241=m
2799CONFIG_SENSORS_LM95245=m 2912CONFIG_SENSORS_LM95245=m
2800CONFIG_SENSORS_MAX1111=m 2913CONFIG_SENSORS_MAX1111=m
2801CONFIG_SENSORS_MAX16065=m 2914CONFIG_SENSORS_MAX16065=m
2802CONFIG_SENSORS_MAX1619=m 2915CONFIG_SENSORS_MAX1619=m
2803CONFIG_SENSORS_MAX1668=m 2916CONFIG_SENSORS_MAX1668=m
2917# CONFIG_SENSORS_MAX197 is not set
2804CONFIG_SENSORS_MAX6639=m 2918CONFIG_SENSORS_MAX6639=m
2805CONFIG_SENSORS_MAX6642=m 2919CONFIG_SENSORS_MAX6642=m
2806CONFIG_SENSORS_MAX6650=m 2920CONFIG_SENSORS_MAX6650=m
2921# CONFIG_SENSORS_MAX6697 is not set
2807CONFIG_SENSORS_MCP3021=m 2922CONFIG_SENSORS_MCP3021=m
2923# CONFIG_SENSORS_NCT6775 is not set
2808CONFIG_SENSORS_NTC_THERMISTOR=m 2924CONFIG_SENSORS_NTC_THERMISTOR=m
2809CONFIG_SENSORS_PC87360=m 2925CONFIG_SENSORS_PC87360=m
2810CONFIG_SENSORS_PC87427=m 2926CONFIG_SENSORS_PC87427=m
@@ -2838,6 +2954,8 @@ CONFIG_SENSORS_ADS1015=m
2838CONFIG_SENSORS_ADS7828=m 2954CONFIG_SENSORS_ADS7828=m
2839CONFIG_SENSORS_ADS7871=m 2955CONFIG_SENSORS_ADS7871=m
2840CONFIG_SENSORS_AMC6821=m 2956CONFIG_SENSORS_AMC6821=m
2957# CONFIG_SENSORS_INA209 is not set
2958# CONFIG_SENSORS_INA2XX is not set
2841CONFIG_SENSORS_THMC50=m 2959CONFIG_SENSORS_THMC50=m
2842CONFIG_SENSORS_TMP102=m 2960CONFIG_SENSORS_TMP102=m
2843CONFIG_SENSORS_TMP401=m 2961CONFIG_SENSORS_TMP401=m
@@ -2857,7 +2975,6 @@ CONFIG_SENSORS_W83L786NG=m
2857CONFIG_SENSORS_W83627HF=m 2975CONFIG_SENSORS_W83627HF=m
2858CONFIG_SENSORS_W83627EHF=m 2976CONFIG_SENSORS_W83627EHF=m
2859CONFIG_SENSORS_APPLESMC=m 2977CONFIG_SENSORS_APPLESMC=m
2860# CONFIG_SENSORS_MC13783_ADC is not set
2861 2978
2862# 2979#
2863# ACPI drivers 2980# ACPI drivers
@@ -2865,6 +2982,15 @@ CONFIG_SENSORS_APPLESMC=m
2865CONFIG_SENSORS_ACPI_POWER=m 2982CONFIG_SENSORS_ACPI_POWER=m
2866CONFIG_SENSORS_ATK0110=m 2983CONFIG_SENSORS_ATK0110=m
2867CONFIG_THERMAL=y 2984CONFIG_THERMAL=y
2985CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
2986# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
2987# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
2988# CONFIG_THERMAL_GOV_FAIR_SHARE is not set
2989CONFIG_THERMAL_GOV_STEP_WISE=y
2990# CONFIG_THERMAL_GOV_USER_SPACE is not set
2991# CONFIG_CPU_THERMAL is not set
2992# CONFIG_THERMAL_EMULATION is not set
2993# CONFIG_INTEL_POWERCLAMP is not set
2868CONFIG_WATCHDOG=y 2994CONFIG_WATCHDOG=y
2869CONFIG_WATCHDOG_CORE=y 2995CONFIG_WATCHDOG_CORE=y
2870# CONFIG_WATCHDOG_NOWAYOUT is not set 2996# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -2887,6 +3013,7 @@ CONFIG_IB700_WDT=m
2887CONFIG_IBMASR=m 3013CONFIG_IBMASR=m
2888CONFIG_WAFER_WDT=m 3014CONFIG_WAFER_WDT=m
2889CONFIG_I6300ESB_WDT=m 3015CONFIG_I6300ESB_WDT=m
3016# CONFIG_IE6XX_WDT is not set
2890CONFIG_ITCO_WDT=m 3017CONFIG_ITCO_WDT=m
2891CONFIG_ITCO_VENDOR_SUPPORT=y 3018CONFIG_ITCO_VENDOR_SUPPORT=y
2892CONFIG_IT8712F_WDT=m 3019CONFIG_IT8712F_WDT=m
@@ -2937,6 +3064,7 @@ CONFIG_SSB_SDIOHOST=y
2937# CONFIG_SSB_DEBUG is not set 3064# CONFIG_SSB_DEBUG is not set
2938CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y 3065CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
2939CONFIG_SSB_DRIVER_PCICORE=y 3066CONFIG_SSB_DRIVER_PCICORE=y
3067# CONFIG_SSB_DRIVER_GPIO is not set
2940CONFIG_BCMA_POSSIBLE=y 3068CONFIG_BCMA_POSSIBLE=y
2941 3069
2942# 3070#
@@ -2948,35 +3076,45 @@ CONFIG_BCMA_POSSIBLE=y
2948# Multifunction device drivers 3076# Multifunction device drivers
2949# 3077#
2950CONFIG_MFD_CORE=m 3078CONFIG_MFD_CORE=m
2951CONFIG_MFD_SM501=m 3079CONFIG_MFD_CS5535=m
2952# CONFIG_MFD_SM501_GPIO is not set 3080# CONFIG_MFD_CROS_EC is not set
3081# CONFIG_MFD_DA9052_SPI is not set
3082# CONFIG_MFD_MC13XXX_SPI is not set
3083# CONFIG_MFD_MC13XXX_I2C is not set
2953CONFIG_HTC_PASIC3=m 3084CONFIG_HTC_PASIC3=m
3085CONFIG_LPC_ICH=m
3086CONFIG_LPC_SCH=m
3087CONFIG_MFD_JANZ_CMODIO=m
3088# CONFIG_EZX_PCAP is not set
3089# CONFIG_MFD_VIPERBOARD is not set
3090# CONFIG_MFD_RETU is not set
3091CONFIG_MFD_PCF50633=m
3092CONFIG_PCF50633_ADC=m
3093CONFIG_PCF50633_GPIO=m
2954CONFIG_UCB1400_CORE=m 3094CONFIG_UCB1400_CORE=m
3095CONFIG_MFD_RDC321X=m
3096# CONFIG_MFD_RTSX_PCI is not set
3097# CONFIG_MFD_SI476X_CORE is not set
3098CONFIG_MFD_SM501=m
3099# CONFIG_MFD_SM501_GPIO is not set
3100CONFIG_ABX500_CORE=y
3101# CONFIG_MFD_STMPE is not set
3102# CONFIG_MFD_SYSCON is not set
3103# CONFIG_MFD_TI_AM335X_TSCADC is not set
2955# CONFIG_TPS6105X is not set 3104# CONFIG_TPS6105X is not set
2956CONFIG_TPS65010=m 3105CONFIG_TPS65010=m
2957CONFIG_TPS6507X=m 3106CONFIG_TPS6507X=m
2958# CONFIG_MFD_TPS65217 is not set 3107# CONFIG_MFD_TPS65217 is not set
3108# CONFIG_MFD_TPS65912 is not set
2959# CONFIG_MFD_TPS65912_SPI is not set 3109# CONFIG_MFD_TPS65912_SPI is not set
2960# CONFIG_MFD_STMPE is not set 3110CONFIG_MFD_WL1273_CORE=m
2961# CONFIG_MFD_TMIO is not set 3111# CONFIG_MFD_LM3533 is not set
2962# CONFIG_MFD_DA9052_SPI is not set
2963CONFIG_MFD_WM8400=m
2964# CONFIG_MFD_WM831X_SPI is not set
2965CONFIG_MFD_PCF50633=m
2966CONFIG_PCF50633_ADC=m
2967CONFIG_PCF50633_GPIO=m
2968CONFIG_MFD_MC13783=m
2969CONFIG_MFD_MC13XXX=m
2970CONFIG_ABX500_CORE=y
2971# CONFIG_EZX_PCAP is not set
2972# CONFIG_AB8500_CORE is not set
2973CONFIG_MFD_CS5535=m
2974CONFIG_MFD_TIMBERDALE=m 3112CONFIG_MFD_TIMBERDALE=m
2975CONFIG_LPC_SCH=m 3113# CONFIG_MFD_TMIO is not set
2976CONFIG_MFD_RDC321X=m
2977CONFIG_MFD_JANZ_CMODIO=m
2978CONFIG_MFD_VX855=m 3114CONFIG_MFD_VX855=m
2979CONFIG_MFD_WL1273_CORE=m 3115# CONFIG_MFD_ARIZONA_I2C is not set
3116# CONFIG_MFD_ARIZONA_SPI is not set
3117# CONFIG_MFD_WM831X_SPI is not set
2980# CONFIG_REGULATOR is not set 3118# CONFIG_REGULATOR is not set
2981# CONFIG_MEDIA_SUPPORT is not set 3119# CONFIG_MEDIA_SUPPORT is not set
2982 3120
@@ -2995,19 +3133,21 @@ CONFIG_DRM=m
2995CONFIG_DRM_KMS_HELPER=m 3133CONFIG_DRM_KMS_HELPER=m
2996# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set 3134# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
2997CONFIG_DRM_TTM=m 3135CONFIG_DRM_TTM=m
2998CONFIG_DRM_TDFX=m
2999CONFIG_DRM_R128=m
3000CONFIG_DRM_RADEON=m
3001# CONFIG_DRM_RADEON_KMS is not set
3002CONFIG_DRM_NOUVEAU=m
3003CONFIG_DRM_NOUVEAU_BACKLIGHT=y
3004CONFIG_DRM_NOUVEAU_DEBUG=y
3005 3136
3006# 3137#
3007# I2C encoder or helper chips 3138# I2C encoder or helper chips
3008# 3139#
3009# CONFIG_DRM_I2C_CH7006 is not set 3140# CONFIG_DRM_I2C_CH7006 is not set
3010CONFIG_DRM_I2C_SIL164=m 3141CONFIG_DRM_I2C_SIL164=m
3142# CONFIG_DRM_I2C_NXP_TDA998X is not set
3143CONFIG_DRM_TDFX=m
3144CONFIG_DRM_R128=m
3145CONFIG_DRM_RADEON=m
3146# CONFIG_DRM_RADEON_UMS is not set
3147CONFIG_DRM_NOUVEAU=m
3148CONFIG_NOUVEAU_DEBUG=5
3149CONFIG_NOUVEAU_DEBUG_DEFAULT=3
3150CONFIG_DRM_NOUVEAU_BACKLIGHT=y
3011CONFIG_DRM_I810=m 3151CONFIG_DRM_I810=m
3012CONFIG_DRM_I915=m 3152CONFIG_DRM_I915=m
3013# CONFIG_DRM_I915_KMS is not set 3153# CONFIG_DRM_I915_KMS is not set
@@ -3016,13 +3156,18 @@ CONFIG_DRM_SIS=m
3016CONFIG_DRM_VIA=m 3156CONFIG_DRM_VIA=m
3017CONFIG_DRM_SAVAGE=m 3157CONFIG_DRM_SAVAGE=m
3018CONFIG_DRM_VMWGFX=m 3158CONFIG_DRM_VMWGFX=m
3159# CONFIG_DRM_VMWGFX_FBCON is not set
3019CONFIG_DRM_GMA500=m 3160CONFIG_DRM_GMA500=m
3020CONFIG_DRM_GMA600=y 3161CONFIG_DRM_GMA600=y
3021CONFIG_DRM_GMA3600=y 3162CONFIG_DRM_GMA3600=y
3022# CONFIG_DRM_UDL is not set 3163# CONFIG_DRM_UDL is not set
3023# CONFIG_STUB_POULSBO is not set 3164# CONFIG_DRM_AST is not set
3165# CONFIG_DRM_MGAG200 is not set
3166CONFIG_DRM_CIRRUS_QEMU=m
3167CONFIG_DRM_QXL=m
3024CONFIG_VGASTATE=m 3168CONFIG_VGASTATE=m
3025CONFIG_VIDEO_OUTPUT_CONTROL=m 3169CONFIG_VIDEO_OUTPUT_CONTROL=m
3170CONFIG_HDMI=y
3026CONFIG_FB=m 3171CONFIG_FB=m
3027# CONFIG_FIRMWARE_EDID is not set 3172# CONFIG_FIRMWARE_EDID is not set
3028CONFIG_FB_DDC=m 3173CONFIG_FB_DDC=m
@@ -3036,7 +3181,6 @@ CONFIG_FB_SYS_COPYAREA=m
3036CONFIG_FB_SYS_IMAGEBLIT=m 3181CONFIG_FB_SYS_IMAGEBLIT=m
3037# CONFIG_FB_FOREIGN_ENDIAN is not set 3182# CONFIG_FB_FOREIGN_ENDIAN is not set
3038CONFIG_FB_SYS_FOPS=m 3183CONFIG_FB_SYS_FOPS=m
3039# CONFIG_FB_WMT_GE_ROPS is not set
3040CONFIG_FB_DEFERRED_IO=y 3184CONFIG_FB_DEFERRED_IO=y
3041CONFIG_FB_HECUBA=m 3185CONFIG_FB_HECUBA=m
3042CONFIG_FB_SVGALIB=m 3186CONFIG_FB_SVGALIB=m
@@ -3123,6 +3267,7 @@ CONFIG_FB_TMIO_ACCELL=y
3123# CONFIG_FB_SM501 is not set 3267# CONFIG_FB_SM501 is not set
3124# CONFIG_FB_SMSCUFX is not set 3268# CONFIG_FB_SMSCUFX is not set
3125# CONFIG_FB_UDL is not set 3269# CONFIG_FB_UDL is not set
3270# CONFIG_FB_GOLDFISH is not set
3126# CONFIG_FB_VIRTUAL is not set 3271# CONFIG_FB_VIRTUAL is not set
3127CONFIG_XEN_FBDEV_FRONTEND=m 3272CONFIG_XEN_FBDEV_FRONTEND=m
3128CONFIG_FB_METRONOME=m 3273CONFIG_FB_METRONOME=m
@@ -3130,12 +3275,15 @@ CONFIG_FB_MB862XX=m
3130CONFIG_FB_MB862XX_PCI_GDC=y 3275CONFIG_FB_MB862XX_PCI_GDC=y
3131CONFIG_FB_MB862XX_I2C=y 3276CONFIG_FB_MB862XX_I2C=y
3132CONFIG_FB_BROADSHEET=m 3277CONFIG_FB_BROADSHEET=m
3278# CONFIG_FB_AUO_K190X is not set
3279CONFIG_FB_HYPERV=m
3133# CONFIG_EXYNOS_VIDEO is not set 3280# CONFIG_EXYNOS_VIDEO is not set
3134CONFIG_BACKLIGHT_LCD_SUPPORT=y 3281CONFIG_BACKLIGHT_LCD_SUPPORT=y
3135CONFIG_LCD_CLASS_DEVICE=m 3282CONFIG_LCD_CLASS_DEVICE=m
3136CONFIG_LCD_L4F00242T03=m 3283CONFIG_LCD_L4F00242T03=m
3137CONFIG_LCD_LMS283GF05=m 3284CONFIG_LCD_LMS283GF05=m
3138CONFIG_LCD_LTV350QV=m 3285CONFIG_LCD_LTV350QV=m
3286# CONFIG_LCD_ILI922X is not set
3139CONFIG_LCD_ILI9320=m 3287CONFIG_LCD_ILI9320=m
3140CONFIG_LCD_TDO24M=m 3288CONFIG_LCD_TDO24M=m
3141CONFIG_LCD_VGG2432A4=m 3289CONFIG_LCD_VGG2432A4=m
@@ -3143,15 +3291,18 @@ CONFIG_LCD_PLATFORM=m
3143CONFIG_LCD_S6E63M0=m 3291CONFIG_LCD_S6E63M0=m
3144# CONFIG_LCD_LD9040 is not set 3292# CONFIG_LCD_LD9040 is not set
3145CONFIG_LCD_AMS369FG06=m 3293CONFIG_LCD_AMS369FG06=m
3294# CONFIG_LCD_LMS501KF03 is not set
3295# CONFIG_LCD_HX8357 is not set
3146CONFIG_BACKLIGHT_CLASS_DEVICE=m 3296CONFIG_BACKLIGHT_CLASS_DEVICE=m
3147CONFIG_BACKLIGHT_GENERIC=m 3297CONFIG_BACKLIGHT_GENERIC=m
3148CONFIG_BACKLIGHT_PROGEAR=m
3149CONFIG_BACKLIGHT_CARILLO_RANCH=m 3298CONFIG_BACKLIGHT_CARILLO_RANCH=m
3150# CONFIG_BACKLIGHT_APPLE is not set 3299# CONFIG_BACKLIGHT_APPLE is not set
3151CONFIG_BACKLIGHT_SAHARA=m 3300CONFIG_BACKLIGHT_SAHARA=m
3152CONFIG_BACKLIGHT_ADP8860=m 3301CONFIG_BACKLIGHT_ADP8860=m
3153# CONFIG_BACKLIGHT_ADP8870 is not set 3302# CONFIG_BACKLIGHT_ADP8870 is not set
3154CONFIG_BACKLIGHT_PCF50633=m 3303CONFIG_BACKLIGHT_PCF50633=m
3304# CONFIG_BACKLIGHT_LM3630 is not set
3305# CONFIG_BACKLIGHT_LM3639 is not set
3155# CONFIG_BACKLIGHT_LP855X is not set 3306# CONFIG_BACKLIGHT_LP855X is not set
3156# CONFIG_BACKLIGHT_OT200 is not set 3307# CONFIG_BACKLIGHT_OT200 is not set
3157 3308
@@ -3176,6 +3327,7 @@ CONFIG_SND_TIMER=m
3176CONFIG_SND_PCM=m 3327CONFIG_SND_PCM=m
3177CONFIG_SND_HWDEP=m 3328CONFIG_SND_HWDEP=m
3178CONFIG_SND_RAWMIDI=m 3329CONFIG_SND_RAWMIDI=m
3330CONFIG_SND_COMPRESS_OFFLOAD=m
3179CONFIG_SND_JACK=y 3331CONFIG_SND_JACK=y
3180CONFIG_SND_SEQUENCER=m 3332CONFIG_SND_SEQUENCER=m
3181CONFIG_SND_SEQ_DUMMY=m 3333CONFIG_SND_SEQ_DUMMY=m
@@ -3273,7 +3425,6 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0
3273CONFIG_SND_HDA_INPUT_JACK=y 3425CONFIG_SND_HDA_INPUT_JACK=y
3274# CONFIG_SND_HDA_PATCH_LOADER is not set 3426# CONFIG_SND_HDA_PATCH_LOADER is not set
3275CONFIG_SND_HDA_CODEC_REALTEK=y 3427CONFIG_SND_HDA_CODEC_REALTEK=y
3276CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
3277CONFIG_SND_HDA_CODEC_ANALOG=y 3428CONFIG_SND_HDA_CODEC_ANALOG=y
3278CONFIG_SND_HDA_CODEC_SIGMATEL=y 3429CONFIG_SND_HDA_CODEC_SIGMATEL=y
3279CONFIG_SND_HDA_CODEC_VIA=y 3430CONFIG_SND_HDA_CODEC_VIA=y
@@ -3282,10 +3433,11 @@ CONFIG_SND_HDA_CODEC_CIRRUS=y
3282CONFIG_SND_HDA_CODEC_CONEXANT=y 3433CONFIG_SND_HDA_CODEC_CONEXANT=y
3283CONFIG_SND_HDA_CODEC_CA0110=y 3434CONFIG_SND_HDA_CODEC_CA0110=y
3284CONFIG_SND_HDA_CODEC_CA0132=y 3435CONFIG_SND_HDA_CODEC_CA0132=y
3436# CONFIG_SND_HDA_CODEC_CA0132_DSP is not set
3285CONFIG_SND_HDA_CODEC_CMEDIA=y 3437CONFIG_SND_HDA_CODEC_CMEDIA=y
3286CONFIG_SND_HDA_CODEC_SI3054=y 3438CONFIG_SND_HDA_CODEC_SI3054=y
3287CONFIG_SND_HDA_GENERIC=y 3439CONFIG_SND_HDA_GENERIC=y
3288# CONFIG_SND_HDA_POWER_SAVE is not set 3440CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
3289CONFIG_SND_HDSP=m 3441CONFIG_SND_HDSP=m
3290CONFIG_SND_HDSPM=m 3442CONFIG_SND_HDSPM=m
3291CONFIG_SND_ICE1712=m 3443CONFIG_SND_ICE1712=m
@@ -3324,10 +3476,14 @@ CONFIG_SND_FIREWIRE=y
3324CONFIG_SND_FIREWIRE_LIB=m 3476CONFIG_SND_FIREWIRE_LIB=m
3325CONFIG_SND_FIREWIRE_SPEAKERS=m 3477CONFIG_SND_FIREWIRE_SPEAKERS=m
3326CONFIG_SND_ISIGHT=m 3478CONFIG_SND_ISIGHT=m
3479# CONFIG_SND_SCS1X is not set
3327CONFIG_SND_SOC=m 3480CONFIG_SND_SOC=m
3481# CONFIG_SND_ATMEL_SOC is not set
3328CONFIG_SND_SOC_I2C_AND_SPI=m 3482CONFIG_SND_SOC_I2C_AND_SPI=m
3329CONFIG_SND_SOC_ALL_CODECS=m 3483CONFIG_SND_SOC_ALL_CODECS=m
3330CONFIG_SND_SOC_WM_HUBS=m 3484CONFIG_SND_SOC_WM_HUBS=m
3485CONFIG_SND_SOC_WM_ADSP=m
3486CONFIG_SND_SOC_AB8500_CODEC=m
3331CONFIG_SND_SOC_AD1836=m 3487CONFIG_SND_SOC_AD1836=m
3332CONFIG_SND_SOC_AD193X=m 3488CONFIG_SND_SOC_AD193X=m
3333CONFIG_SND_SOC_AD73311=m 3489CONFIG_SND_SOC_AD73311=m
@@ -3339,9 +3495,11 @@ CONFIG_SND_SOC_AK4535=m
3339CONFIG_SND_SOC_AK4641=m 3495CONFIG_SND_SOC_AK4641=m
3340CONFIG_SND_SOC_AK4642=m 3496CONFIG_SND_SOC_AK4642=m
3341CONFIG_SND_SOC_AK4671=m 3497CONFIG_SND_SOC_AK4671=m
3498CONFIG_SND_SOC_AK5386=m
3342CONFIG_SND_SOC_ALC5623=m 3499CONFIG_SND_SOC_ALC5623=m
3343CONFIG_SND_SOC_ALC5632=m 3500CONFIG_SND_SOC_ALC5632=m
3344CONFIG_SND_SOC_CS42L51=m 3501CONFIG_SND_SOC_CS42L51=m
3502CONFIG_SND_SOC_CS42L52=m
3345CONFIG_SND_SOC_CS42L73=m 3503CONFIG_SND_SOC_CS42L73=m
3346CONFIG_SND_SOC_CS4270=m 3504CONFIG_SND_SOC_CS4270=m
3347CONFIG_SND_SOC_CS4271=m 3505CONFIG_SND_SOC_CS4271=m
@@ -3349,8 +3507,14 @@ CONFIG_SND_SOC_CX20442=m
3349CONFIG_SND_SOC_JZ4740_CODEC=m 3507CONFIG_SND_SOC_JZ4740_CODEC=m
3350CONFIG_SND_SOC_L3=m 3508CONFIG_SND_SOC_L3=m
3351CONFIG_SND_SOC_DA7210=m 3509CONFIG_SND_SOC_DA7210=m
3510CONFIG_SND_SOC_DA7213=m
3511CONFIG_SND_SOC_DA732X=m
3512CONFIG_SND_SOC_DA9055=m
3352CONFIG_SND_SOC_DFBMCS320=m 3513CONFIG_SND_SOC_DFBMCS320=m
3514CONFIG_SND_SOC_ISABELLE=m
3515CONFIG_SND_SOC_LM49453=m
3353CONFIG_SND_SOC_MAX98088=m 3516CONFIG_SND_SOC_MAX98088=m
3517CONFIG_SND_SOC_MAX98090=m
3354CONFIG_SND_SOC_MAX98095=m 3518CONFIG_SND_SOC_MAX98095=m
3355CONFIG_SND_SOC_MAX9850=m 3519CONFIG_SND_SOC_MAX9850=m
3356CONFIG_SND_SOC_PCM3008=m 3520CONFIG_SND_SOC_PCM3008=m
@@ -3359,6 +3523,8 @@ CONFIG_SND_SOC_SGTL5000=m
3359CONFIG_SND_SOC_SPDIF=m 3523CONFIG_SND_SOC_SPDIF=m
3360CONFIG_SND_SOC_SSM2602=m 3524CONFIG_SND_SOC_SSM2602=m
3361CONFIG_SND_SOC_STA32X=m 3525CONFIG_SND_SOC_STA32X=m
3526CONFIG_SND_SOC_STA529=m
3527CONFIG_SND_SOC_TAS5086=m
3362CONFIG_SND_SOC_TLV320AIC23=m 3528CONFIG_SND_SOC_TLV320AIC23=m
3363CONFIG_SND_SOC_TLV320AIC26=m 3529CONFIG_SND_SOC_TLV320AIC26=m
3364CONFIG_SND_SOC_TLV320AIC32X4=m 3530CONFIG_SND_SOC_TLV320AIC32X4=m
@@ -3367,11 +3533,11 @@ CONFIG_SND_SOC_TLV320DAC33=m
3367CONFIG_SND_SOC_UDA134X=m 3533CONFIG_SND_SOC_UDA134X=m
3368CONFIG_SND_SOC_UDA1380=m 3534CONFIG_SND_SOC_UDA1380=m
3369CONFIG_SND_SOC_WL1273=m 3535CONFIG_SND_SOC_WL1273=m
3536CONFIG_SND_SOC_WM0010=m
3370CONFIG_SND_SOC_WM1250_EV1=m 3537CONFIG_SND_SOC_WM1250_EV1=m
3371CONFIG_SND_SOC_WM2000=m 3538CONFIG_SND_SOC_WM2000=m
3372CONFIG_SND_SOC_WM2200=m 3539CONFIG_SND_SOC_WM2200=m
3373CONFIG_SND_SOC_WM5100=m 3540CONFIG_SND_SOC_WM5100=m
3374CONFIG_SND_SOC_WM8400=m
3375CONFIG_SND_SOC_WM8510=m 3541CONFIG_SND_SOC_WM8510=m
3376CONFIG_SND_SOC_WM8523=m 3542CONFIG_SND_SOC_WM8523=m
3377CONFIG_SND_SOC_WM8580=m 3543CONFIG_SND_SOC_WM8580=m
@@ -3411,25 +3577,19 @@ CONFIG_SND_SOC_WM9090=m
3411CONFIG_SND_SOC_LM4857=m 3577CONFIG_SND_SOC_LM4857=m
3412CONFIG_SND_SOC_MAX9768=m 3578CONFIG_SND_SOC_MAX9768=m
3413CONFIG_SND_SOC_MAX9877=m 3579CONFIG_SND_SOC_MAX9877=m
3580CONFIG_SND_SOC_ML26124=m
3414CONFIG_SND_SOC_TPA6130A2=m 3581CONFIG_SND_SOC_TPA6130A2=m
3582# CONFIG_SND_SIMPLE_CARD is not set
3415# CONFIG_SOUND_PRIME is not set 3583# CONFIG_SOUND_PRIME is not set
3416CONFIG_AC97_BUS=m 3584CONFIG_AC97_BUS=m
3417CONFIG_HID_SUPPORT=y
3418CONFIG_HID=m
3419CONFIG_HIDRAW=y
3420 3585
3421# 3586#
3422# USB Input Devices 3587# HID support
3423#
3424CONFIG_USB_HID=m
3425# CONFIG_HID_PID is not set
3426# CONFIG_USB_HIDDEV is not set
3427
3428# 3588#
3429# USB HID Boot Protocol drivers 3589CONFIG_HID=m
3430# 3590CONFIG_HIDRAW=y
3431CONFIG_USB_KBD=m 3591# CONFIG_UHID is not set
3432CONFIG_USB_MOUSE=m 3592CONFIG_HID_GENERIC=m
3433 3593
3434# 3594#
3435# Special HID drivers 3595# Special HID drivers
@@ -3437,6 +3597,8 @@ CONFIG_USB_MOUSE=m
3437# CONFIG_HID_A4TECH is not set 3597# CONFIG_HID_A4TECH is not set
3438# CONFIG_HID_ACRUX is not set 3598# CONFIG_HID_ACRUX is not set
3439CONFIG_HID_APPLE=m 3599CONFIG_HID_APPLE=m
3600# CONFIG_HID_APPLEIR is not set
3601# CONFIG_HID_AUREAL is not set
3440# CONFIG_HID_BELKIN is not set 3602# CONFIG_HID_BELKIN is not set
3441# CONFIG_HID_CHERRY is not set 3603# CONFIG_HID_CHERRY is not set
3442# CONFIG_HID_CHICONY is not set 3604# CONFIG_HID_CHICONY is not set
@@ -3452,9 +3614,11 @@ CONFIG_HID_KEYTOUCH=m
3452# CONFIG_HID_UCLOGIC is not set 3614# CONFIG_HID_UCLOGIC is not set
3453# CONFIG_HID_WALTOP is not set 3615# CONFIG_HID_WALTOP is not set
3454# CONFIG_HID_GYRATION is not set 3616# CONFIG_HID_GYRATION is not set
3617# CONFIG_HID_ICADE is not set
3455# CONFIG_HID_TWINHAN is not set 3618# CONFIG_HID_TWINHAN is not set
3456# CONFIG_HID_KENSINGTON is not set 3619# CONFIG_HID_KENSINGTON is not set
3457CONFIG_HID_LCPOWER=m 3620CONFIG_HID_LCPOWER=m
3621# CONFIG_HID_LENOVO_TPKBD is not set
3458# CONFIG_HID_LOGITECH is not set 3622# CONFIG_HID_LOGITECH is not set
3459CONFIG_HID_MAGICMOUSE=m 3623CONFIG_HID_MAGICMOUSE=m
3460# CONFIG_HID_MICROSOFT is not set 3624# CONFIG_HID_MICROSOFT is not set
@@ -3470,22 +3634,44 @@ CONFIG_HID_PICOLCD_BACKLIGHT=y
3470CONFIG_HID_PICOLCD_LCD=y 3634CONFIG_HID_PICOLCD_LCD=y
3471CONFIG_HID_PICOLCD_LEDS=y 3635CONFIG_HID_PICOLCD_LEDS=y
3472CONFIG_HID_PRIMAX=m 3636CONFIG_HID_PRIMAX=m
3637# CONFIG_HID_PS3REMOTE is not set
3473CONFIG_HID_ROCCAT=m 3638CONFIG_HID_ROCCAT=m
3474# CONFIG_HID_SAITEK is not set 3639# CONFIG_HID_SAITEK is not set
3475# CONFIG_HID_SAMSUNG is not set 3640# CONFIG_HID_SAMSUNG is not set
3476CONFIG_HID_SONY=m 3641CONFIG_HID_SONY=m
3477CONFIG_HID_SPEEDLINK=m 3642CONFIG_HID_SPEEDLINK=m
3643# CONFIG_HID_STEELSERIES is not set
3478# CONFIG_HID_SUNPLUS is not set 3644# CONFIG_HID_SUNPLUS is not set
3479# CONFIG_HID_GREENASIA is not set 3645# CONFIG_HID_GREENASIA is not set
3480CONFIG_HID_HYPERV_MOUSE=m 3646CONFIG_HID_HYPERV_MOUSE=m
3481# CONFIG_HID_SMARTJOYPLUS is not set 3647# CONFIG_HID_SMARTJOYPLUS is not set
3482# CONFIG_HID_TIVO is not set 3648# CONFIG_HID_TIVO is not set
3483# CONFIG_HID_TOPSEED is not set 3649# CONFIG_HID_TOPSEED is not set
3650# CONFIG_HID_THINGM is not set
3484# CONFIG_HID_THRUSTMASTER is not set 3651# CONFIG_HID_THRUSTMASTER is not set
3485# CONFIG_HID_WACOM is not set 3652# CONFIG_HID_WACOM is not set
3486# CONFIG_HID_WIIMOTE is not set 3653# CONFIG_HID_WIIMOTE is not set
3487# CONFIG_HID_ZEROPLUS is not set 3654# CONFIG_HID_ZEROPLUS is not set
3488CONFIG_HID_ZYDACRON=m 3655CONFIG_HID_ZYDACRON=m
3656# CONFIG_HID_SENSOR_HUB is not set
3657
3658#
3659# USB HID support
3660#
3661CONFIG_USB_HID=m
3662# CONFIG_HID_PID is not set
3663# CONFIG_USB_HIDDEV is not set
3664
3665#
3666# USB HID Boot Protocol drivers
3667#
3668CONFIG_USB_KBD=m
3669CONFIG_USB_MOUSE=m
3670
3671#
3672# I2C HID support
3673#
3674# CONFIG_I2C_HID is not set
3489CONFIG_USB_ARCH_HAS_OHCI=y 3675CONFIG_USB_ARCH_HAS_OHCI=y
3490CONFIG_USB_ARCH_HAS_EHCI=y 3676CONFIG_USB_ARCH_HAS_EHCI=y
3491CONFIG_USB_ARCH_HAS_XHCI=y 3677CONFIG_USB_ARCH_HAS_XHCI=y
@@ -3499,8 +3685,7 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
3499# 3685#
3500# Miscellaneous USB options 3686# Miscellaneous USB options
3501# 3687#
3502CONFIG_USB_DEVICEFS=y 3688CONFIG_USB_DEFAULT_PERSIST=y
3503CONFIG_USB_DEVICE_CLASS=y
3504# CONFIG_USB_DYNAMIC_MINORS is not set 3689# CONFIG_USB_DYNAMIC_MINORS is not set
3505# CONFIG_USB_OTG_WHITELIST is not set 3690# CONFIG_USB_OTG_WHITELIST is not set
3506# CONFIG_USB_OTG_BLACKLIST_HUB is not set 3691# CONFIG_USB_OTG_BLACKLIST_HUB is not set
@@ -3517,6 +3702,8 @@ CONFIG_USB_XHCI_HCD=m
3517CONFIG_USB_EHCI_HCD=m 3702CONFIG_USB_EHCI_HCD=m
3518# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 3703# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
3519# CONFIG_USB_EHCI_TT_NEWSCHED is not set 3704# CONFIG_USB_EHCI_TT_NEWSCHED is not set
3705CONFIG_USB_EHCI_PCI=m
3706CONFIG_USB_EHCI_HCD_PLATFORM=m
3520CONFIG_USB_OXU210HP_HCD=m 3707CONFIG_USB_OXU210HP_HCD=m
3521CONFIG_USB_ISP116X_HCD=m 3708CONFIG_USB_ISP116X_HCD=m
3522CONFIG_USB_ISP1760_HCD=m 3709CONFIG_USB_ISP1760_HCD=m
@@ -3524,7 +3711,6 @@ CONFIG_USB_ISP1362_HCD=m
3524CONFIG_USB_OHCI_HCD=m 3711CONFIG_USB_OHCI_HCD=m
3525CONFIG_USB_OHCI_HCD_SSB=y 3712CONFIG_USB_OHCI_HCD_SSB=y
3526CONFIG_USB_OHCI_HCD_PLATFORM=y 3713CONFIG_USB_OHCI_HCD_PLATFORM=y
3527CONFIG_USB_EHCI_HCD_PLATFORM=y
3528# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 3714# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
3529# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 3715# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
3530CONFIG_USB_OHCI_LITTLE_ENDIAN=y 3716CONFIG_USB_OHCI_LITTLE_ENDIAN=y
@@ -3533,6 +3719,7 @@ CONFIG_USB_U132_HCD=m
3533CONFIG_USB_SL811_HCD=m 3719CONFIG_USB_SL811_HCD=m
3534CONFIG_USB_SL811_HCD_ISO=y 3720CONFIG_USB_SL811_HCD_ISO=y
3535CONFIG_USB_R8A66597_HCD=m 3721CONFIG_USB_R8A66597_HCD=m
3722CONFIG_USB_HCD_SSB=m
3536 3723
3537# 3724#
3538# USB Device Class drivers 3725# USB Device Class drivers
@@ -3564,20 +3751,20 @@ CONFIG_USB_STORAGE_ONETOUCH=m
3564CONFIG_USB_STORAGE_KARMA=m 3751CONFIG_USB_STORAGE_KARMA=m
3565CONFIG_USB_STORAGE_CYPRESS_ATACB=m 3752CONFIG_USB_STORAGE_CYPRESS_ATACB=m
3566CONFIG_USB_STORAGE_ENE_UB6250=m 3753CONFIG_USB_STORAGE_ENE_UB6250=m
3567CONFIG_USB_LIBUSUAL=y
3568 3754
3569# 3755#
3570# USB Imaging devices 3756# USB Imaging devices
3571# 3757#
3572# CONFIG_USB_MDC800 is not set 3758# CONFIG_USB_MDC800 is not set
3573# CONFIG_USB_MICROTEK is not set 3759# CONFIG_USB_MICROTEK is not set
3760# CONFIG_USB_DWC3 is not set
3761# CONFIG_USB_CHIPIDEA is not set
3574 3762
3575# 3763#
3576# USB port drivers 3764# USB port drivers
3577# 3765#
3578CONFIG_USB_USS720=m 3766CONFIG_USB_USS720=m
3579CONFIG_USB_SERIAL=m 3767CONFIG_USB_SERIAL=m
3580CONFIG_USB_EZUSB=y
3581CONFIG_USB_SERIAL_GENERIC=y 3768CONFIG_USB_SERIAL_GENERIC=y
3582CONFIG_USB_SERIAL_AIRCABLE=m 3769CONFIG_USB_SERIAL_AIRCABLE=m
3583CONFIG_USB_SERIAL_ARK3116=m 3770CONFIG_USB_SERIAL_ARK3116=m
@@ -3629,8 +3816,12 @@ CONFIG_USB_SERIAL_OPTION=m
3629CONFIG_USB_SERIAL_OMNINET=m 3816CONFIG_USB_SERIAL_OMNINET=m
3630CONFIG_USB_SERIAL_OPTICON=m 3817CONFIG_USB_SERIAL_OPTICON=m
3631CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m 3818CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
3819# CONFIG_USB_SERIAL_XSENS_MT is not set
3632CONFIG_USB_SERIAL_ZIO=m 3820CONFIG_USB_SERIAL_ZIO=m
3821# CONFIG_USB_SERIAL_WISHBONE is not set
3822# CONFIG_USB_SERIAL_ZTE is not set
3633# CONFIG_USB_SERIAL_SSU100 is not set 3823# CONFIG_USB_SERIAL_SSU100 is not set
3824# CONFIG_USB_SERIAL_QT2 is not set
3634CONFIG_USB_SERIAL_DEBUG=m 3825CONFIG_USB_SERIAL_DEBUG=m
3635 3826
3636# 3827#
@@ -3657,19 +3848,24 @@ CONFIG_USB_IOWARRIOR=m
3657CONFIG_USB_TEST=m 3848CONFIG_USB_TEST=m
3658CONFIG_USB_ISIGHTFW=m 3849CONFIG_USB_ISIGHTFW=m
3659# CONFIG_USB_YUREX is not set 3850# CONFIG_USB_YUREX is not set
3851CONFIG_USB_EZUSB_FX2=m
3852# CONFIG_USB_HSIC_USB3503 is not set
3660CONFIG_USB_ATM=m 3853CONFIG_USB_ATM=m
3661CONFIG_USB_SPEEDTOUCH=m 3854CONFIG_USB_SPEEDTOUCH=m
3662CONFIG_USB_CXACRU=m 3855CONFIG_USB_CXACRU=m
3663CONFIG_USB_UEAGLEATM=m 3856CONFIG_USB_UEAGLEATM=m
3664CONFIG_USB_XUSBATM=m 3857CONFIG_USB_XUSBATM=m
3665# CONFIG_USB_GADGET is not set 3858CONFIG_USB_PHY=y
3666
3667#
3668# OTG and related infrastructure
3669#
3670CONFIG_USB_OTG_UTILS=y
3671CONFIG_USB_GPIO_VBUS=m
3672CONFIG_NOP_USB_XCEIV=m 3859CONFIG_NOP_USB_XCEIV=m
3860# CONFIG_OMAP_CONTROL_USB is not set
3861# CONFIG_OMAP_USB3 is not set
3862# CONFIG_SAMSUNG_USBPHY is not set
3863# CONFIG_SAMSUNG_USB2PHY is not set
3864# CONFIG_SAMSUNG_USB3PHY is not set
3865CONFIG_USB_GPIO_VBUS=m
3866# CONFIG_USB_ISP1301 is not set
3867# CONFIG_USB_RCAR_PHY is not set
3868# CONFIG_USB_GADGET is not set
3673# CONFIG_UWB is not set 3869# CONFIG_UWB is not set
3674CONFIG_MMC=m 3870CONFIG_MMC=m
3675# CONFIG_MMC_DEBUG is not set 3871# CONFIG_MMC_DEBUG is not set
@@ -3691,6 +3887,7 @@ CONFIG_MMC_TEST=m
3691CONFIG_MMC_SDHCI=m 3887CONFIG_MMC_SDHCI=m
3692CONFIG_MMC_SDHCI_PCI=m 3888CONFIG_MMC_SDHCI_PCI=m
3693CONFIG_MMC_RICOH_MMC=y 3889CONFIG_MMC_RICOH_MMC=y
3890# CONFIG_MMC_SDHCI_ACPI is not set
3694CONFIG_MMC_SDHCI_PLTFM=m 3891CONFIG_MMC_SDHCI_PLTFM=m
3695CONFIG_MMC_WBSD=m 3892CONFIG_MMC_WBSD=m
3696CONFIG_MMC_TIFM_SD=m 3893CONFIG_MMC_TIFM_SD=m
@@ -3721,12 +3918,14 @@ CONFIG_LEDS_CLASS=y
3721# LED drivers 3918# LED drivers
3722# 3919#
3723CONFIG_LEDS_LM3530=m 3920CONFIG_LEDS_LM3530=m
3921# CONFIG_LEDS_LM3642 is not set
3724CONFIG_LEDS_PCA9532=m 3922CONFIG_LEDS_PCA9532=m
3725# CONFIG_LEDS_PCA9532_GPIO is not set 3923# CONFIG_LEDS_PCA9532_GPIO is not set
3726CONFIG_LEDS_GPIO=m 3924CONFIG_LEDS_GPIO=m
3727CONFIG_LEDS_LP3944=m 3925CONFIG_LEDS_LP3944=m
3728# CONFIG_LEDS_LP5521 is not set 3926# CONFIG_LEDS_LP5521 is not set
3729# CONFIG_LEDS_LP5523 is not set 3927# CONFIG_LEDS_LP5523 is not set
3928# CONFIG_LEDS_LP5562 is not set
3730CONFIG_LEDS_CLEVO_MAIL=m 3929CONFIG_LEDS_CLEVO_MAIL=m
3731CONFIG_LEDS_PCA955X=m 3930CONFIG_LEDS_PCA955X=m
3732# CONFIG_LEDS_PCA9633 is not set 3931# CONFIG_LEDS_PCA9633 is not set
@@ -3735,23 +3934,28 @@ CONFIG_LEDS_BD2802=m
3735CONFIG_LEDS_INTEL_SS4200=m 3934CONFIG_LEDS_INTEL_SS4200=m
3736CONFIG_LEDS_LT3593=m 3935CONFIG_LEDS_LT3593=m
3737CONFIG_LEDS_DELL_NETBOOKS=m 3936CONFIG_LEDS_DELL_NETBOOKS=m
3738# CONFIG_LEDS_MC13783 is not set
3739# CONFIG_LEDS_TCA6507 is not set 3937# CONFIG_LEDS_TCA6507 is not set
3938# CONFIG_LEDS_LM355x is not set
3740# CONFIG_LEDS_OT200 is not set 3939# CONFIG_LEDS_OT200 is not set
3741CONFIG_LEDS_TRIGGERS=y 3940# CONFIG_LEDS_BLINKM is not set
3742 3941
3743# 3942#
3744# LED Triggers 3943# LED Triggers
3745# 3944#
3945CONFIG_LEDS_TRIGGERS=y
3746CONFIG_LEDS_TRIGGER_TIMER=m 3946CONFIG_LEDS_TRIGGER_TIMER=m
3947# CONFIG_LEDS_TRIGGER_ONESHOT is not set
3747CONFIG_LEDS_TRIGGER_HEARTBEAT=m 3948CONFIG_LEDS_TRIGGER_HEARTBEAT=m
3748CONFIG_LEDS_TRIGGER_BACKLIGHT=m 3949CONFIG_LEDS_TRIGGER_BACKLIGHT=m
3950# CONFIG_LEDS_TRIGGER_CPU is not set
3749CONFIG_LEDS_TRIGGER_GPIO=m 3951CONFIG_LEDS_TRIGGER_GPIO=m
3750CONFIG_LEDS_TRIGGER_DEFAULT_ON=m 3952CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
3751 3953
3752# 3954#
3753# iptables trigger is under Netfilter config (LED target) 3955# iptables trigger is under Netfilter config (LED target)
3754# 3956#
3957# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
3958# CONFIG_LEDS_TRIGGER_CAMERA is not set
3755CONFIG_ACCESSIBILITY=y 3959CONFIG_ACCESSIBILITY=y
3756# CONFIG_A11Y_BRAILLE_CONSOLE is not set 3960# CONFIG_A11Y_BRAILLE_CONSOLE is not set
3757CONFIG_INFINIBAND=m 3961CONFIG_INFINIBAND=m
@@ -3771,16 +3975,19 @@ CONFIG_INFINIBAND_CXGB4=m
3771CONFIG_MLX4_INFINIBAND=m 3975CONFIG_MLX4_INFINIBAND=m
3772CONFIG_INFINIBAND_NES=m 3976CONFIG_INFINIBAND_NES=m
3773# CONFIG_INFINIBAND_NES_DEBUG is not set 3977# CONFIG_INFINIBAND_NES_DEBUG is not set
3978# CONFIG_INFINIBAND_OCRDMA is not set
3774CONFIG_INFINIBAND_IPOIB=m 3979CONFIG_INFINIBAND_IPOIB=m
3775# CONFIG_INFINIBAND_IPOIB_CM is not set 3980# CONFIG_INFINIBAND_IPOIB_CM is not set
3776# CONFIG_INFINIBAND_IPOIB_DEBUG is not set 3981# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
3777CONFIG_INFINIBAND_SRP=m 3982CONFIG_INFINIBAND_SRP=m
3778CONFIG_INFINIBAND_SRPT=m 3983CONFIG_INFINIBAND_SRPT=m
3779CONFIG_INFINIBAND_ISER=m 3984CONFIG_INFINIBAND_ISER=m
3985CONFIG_INFINIBAND_ISERT=m
3780# CONFIG_EDAC is not set 3986# CONFIG_EDAC is not set
3781CONFIG_RTC_LIB=y 3987CONFIG_RTC_LIB=y
3782CONFIG_RTC_CLASS=y 3988CONFIG_RTC_CLASS=y
3783CONFIG_RTC_HCTOSYS=y 3989CONFIG_RTC_HCTOSYS=y
3990CONFIG_RTC_SYSTOHC=y
3784CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 3991CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
3785# CONFIG_RTC_DEBUG is not set 3992# CONFIG_RTC_DEBUG is not set
3786 3993
@@ -3805,6 +4012,7 @@ CONFIG_RTC_DRV_RS5C372=m
3805CONFIG_RTC_DRV_ISL1208=m 4012CONFIG_RTC_DRV_ISL1208=m
3806# CONFIG_RTC_DRV_ISL12022 is not set 4013# CONFIG_RTC_DRV_ISL12022 is not set
3807CONFIG_RTC_DRV_X1205=m 4014CONFIG_RTC_DRV_X1205=m
4015# CONFIG_RTC_DRV_PCF8523 is not set
3808CONFIG_RTC_DRV_PCF8563=m 4016CONFIG_RTC_DRV_PCF8563=m
3809CONFIG_RTC_DRV_PCF8583=m 4017CONFIG_RTC_DRV_PCF8583=m
3810CONFIG_RTC_DRV_M41T80=m 4018CONFIG_RTC_DRV_M41T80=m
@@ -3829,6 +4037,7 @@ CONFIG_RTC_DRV_R9701=m
3829CONFIG_RTC_DRV_RS5C348=m 4037CONFIG_RTC_DRV_RS5C348=m
3830CONFIG_RTC_DRV_DS3234=m 4038CONFIG_RTC_DRV_DS3234=m
3831CONFIG_RTC_DRV_PCF2123=m 4039CONFIG_RTC_DRV_PCF2123=m
4040# CONFIG_RTC_DRV_RX4581 is not set
3832 4041
3833# 4042#
3834# Platform RTC drivers 4043# Platform RTC drivers
@@ -3846,12 +4055,17 @@ CONFIG_RTC_DRV_MSM6242=m
3846CONFIG_RTC_DRV_BQ4802=m 4055CONFIG_RTC_DRV_BQ4802=m
3847CONFIG_RTC_DRV_RP5C01=m 4056CONFIG_RTC_DRV_RP5C01=m
3848CONFIG_RTC_DRV_V3020=m 4057CONFIG_RTC_DRV_V3020=m
4058# CONFIG_RTC_DRV_DS2404 is not set
3849# CONFIG_RTC_DRV_PCF50633 is not set 4059# CONFIG_RTC_DRV_PCF50633 is not set
3850 4060
3851# 4061#
3852# on-CPU RTC drivers 4062# on-CPU RTC drivers
3853# 4063#
3854# CONFIG_RTC_DRV_MC13XXX is not set 4064
4065#
4066# HID Sensor RTC drivers
4067#
4068# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
3855CONFIG_DMADEVICES=y 4069CONFIG_DMADEVICES=y
3856# CONFIG_DMADEVICES_DEBUG is not set 4070# CONFIG_DMADEVICES_DEBUG is not set
3857 4071
@@ -3860,9 +4074,11 @@ CONFIG_DMADEVICES=y
3860# 4074#
3861# CONFIG_INTEL_MID_DMAC is not set 4075# CONFIG_INTEL_MID_DMAC is not set
3862CONFIG_INTEL_IOATDMA=m 4076CONFIG_INTEL_IOATDMA=m
4077# CONFIG_DW_DMAC is not set
3863CONFIG_TIMB_DMA=m 4078CONFIG_TIMB_DMA=m
3864CONFIG_PCH_DMA=m 4079CONFIG_PCH_DMA=m
3865CONFIG_DMA_ENGINE=y 4080CONFIG_DMA_ENGINE=y
4081CONFIG_DMA_ACPI=y
3866 4082
3867# 4083#
3868# DMA Clients 4084# DMA Clients
@@ -3881,12 +4097,14 @@ CONFIG_UIO=m
3881CONFIG_UIO_CIF=m 4097CONFIG_UIO_CIF=m
3882CONFIG_UIO_PDRV=m 4098CONFIG_UIO_PDRV=m
3883CONFIG_UIO_PDRV_GENIRQ=m 4099CONFIG_UIO_PDRV_GENIRQ=m
4100# CONFIG_UIO_DMEM_GENIRQ is not set
3884CONFIG_UIO_AEC=m 4101CONFIG_UIO_AEC=m
3885CONFIG_UIO_SERCOS3=m 4102CONFIG_UIO_SERCOS3=m
3886CONFIG_UIO_PCI_GENERIC=m 4103CONFIG_UIO_PCI_GENERIC=m
3887CONFIG_UIO_NETX=m 4104CONFIG_UIO_NETX=m
4105# CONFIG_VFIO is not set
4106CONFIG_VIRT_DRIVERS=y
3888CONFIG_VIRTIO=m 4107CONFIG_VIRTIO=m
3889CONFIG_VIRTIO_RING=m
3890 4108
3891# 4109#
3892# Virtio drivers 4110# Virtio drivers
@@ -3894,12 +4112,14 @@ CONFIG_VIRTIO_RING=m
3894CONFIG_VIRTIO_PCI=m 4112CONFIG_VIRTIO_PCI=m
3895CONFIG_VIRTIO_BALLOON=m 4113CONFIG_VIRTIO_BALLOON=m
3896CONFIG_VIRTIO_MMIO=m 4114CONFIG_VIRTIO_MMIO=m
4115# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
3897 4116
3898# 4117#
3899# Microsoft Hyper-V guest support 4118# Microsoft Hyper-V guest support
3900# 4119#
3901CONFIG_HYPERV=m 4120CONFIG_HYPERV=m
3902CONFIG_HYPERV_UTILS=m 4121CONFIG_HYPERV_UTILS=m
4122CONFIG_HYPERV_BALLOON=m
3903 4123
3904# 4124#
3905# Xen driver support 4125# Xen driver support
@@ -3918,6 +4138,7 @@ CONFIG_SWIOTLB_XEN=y
3918CONFIG_XEN_PCIDEV_BACKEND=m 4138CONFIG_XEN_PCIDEV_BACKEND=m
3919CONFIG_XEN_PRIVCMD=m 4139CONFIG_XEN_PRIVCMD=m
3920CONFIG_XEN_ACPI_PROCESSOR=m 4140CONFIG_XEN_ACPI_PROCESSOR=m
4141CONFIG_XEN_HAVE_PVMMU=y
3921CONFIG_STAGING=y 4142CONFIG_STAGING=y
3922# CONFIG_ET131X is not set 4143# CONFIG_ET131X is not set
3923# CONFIG_SLICOSS is not set 4144# CONFIG_SLICOSS is not set
@@ -3932,19 +4153,14 @@ CONFIG_STAGING=y
3932# CONFIG_RTL8192U is not set 4153# CONFIG_RTL8192U is not set
3933# CONFIG_RTLLIB is not set 4154# CONFIG_RTLLIB is not set
3934# CONFIG_R8712U is not set 4155# CONFIG_R8712U is not set
3935# CONFIG_RTS_PSTOR is not set
3936# CONFIG_RTS5139 is not set 4156# CONFIG_RTS5139 is not set
3937# CONFIG_TRANZPORT is not set 4157# CONFIG_TRANZPORT is not set
3938# CONFIG_IDE_PHISON is not set 4158# CONFIG_IDE_PHISON is not set
3939# CONFIG_LINE6_USB is not set 4159# CONFIG_LINE6_USB is not set
3940# CONFIG_USB_SERIAL_QUATECH2 is not set 4160# CONFIG_USB_SERIAL_QUATECH2 is not set
3941# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
3942# CONFIG_VT6655 is not set 4161# CONFIG_VT6655 is not set
3943# CONFIG_VT6656 is not set 4162# CONFIG_VT6656 is not set
3944# CONFIG_VME_BUS is not set
3945# CONFIG_DX_SEP is not set 4163# CONFIG_DX_SEP is not set
3946# CONFIG_IIO is not set
3947# CONFIG_ZRAM is not set
3948# CONFIG_ZSMALLOC is not set 4164# CONFIG_ZSMALLOC is not set
3949# CONFIG_FB_SM7XX is not set 4165# CONFIG_FB_SM7XX is not set
3950# CONFIG_CRYSTALHD is not set 4166# CONFIG_CRYSTALHD is not set
@@ -3962,19 +4178,27 @@ CONFIG_STAGING=y
3962# CONFIG_SPEAKUP is not set 4178# CONFIG_SPEAKUP is not set
3963# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set 4179# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
3964# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set 4180# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
3965# CONFIG_INTEL_MEI is not set
3966# CONFIG_STAGING_MEDIA is not set 4181# CONFIG_STAGING_MEDIA is not set
3967 4182
3968# 4183#
3969# Android 4184# Android
3970# 4185#
3971# CONFIG_ANDROID is not set 4186# CONFIG_ANDROID is not set
3972# CONFIG_PHONE is not set
3973# CONFIG_USB_WPAN_HCD is not set 4187# CONFIG_USB_WPAN_HCD is not set
4188# CONFIG_WIMAX_GDM72XX is not set
4189# CONFIG_CSR_WIFI is not set
4190CONFIG_NET_VENDOR_SILICOM=y
4191# CONFIG_SBYPASS is not set
4192# CONFIG_BPCTL is not set
4193# CONFIG_CED1401 is not set
4194# CONFIG_DGRP is not set
4195# CONFIG_FIREWIRE_SERIAL is not set
4196# CONFIG_USB_DWC2 is not set
3974CONFIG_X86_PLATFORM_DEVICES=y 4197CONFIG_X86_PLATFORM_DEVICES=y
3975# CONFIG_ACER_WMI is not set 4198# CONFIG_ACER_WMI is not set
3976# CONFIG_ACERHDF is not set 4199# CONFIG_ACERHDF is not set
3977# CONFIG_ASUS_LAPTOP is not set 4200# CONFIG_ASUS_LAPTOP is not set
4201# CONFIG_CHROMEOS_LAPTOP is not set
3978# CONFIG_DELL_LAPTOP is not set 4202# CONFIG_DELL_LAPTOP is not set
3979CONFIG_DELL_WMI=m 4203CONFIG_DELL_WMI=m
3980CONFIG_DELL_WMI_AIO=m 4204CONFIG_DELL_WMI_AIO=m
@@ -4009,6 +4233,7 @@ CONFIG_MXM_WMI=m
4009# CONFIG_INTEL_OAKTRAIL is not set 4233# CONFIG_INTEL_OAKTRAIL is not set
4010# CONFIG_SAMSUNG_Q10 is not set 4234# CONFIG_SAMSUNG_Q10 is not set
4011# CONFIG_APPLE_GMUX is not set 4235# CONFIG_APPLE_GMUX is not set
4236CONFIG_PVPANIC=m
4012 4237
4013# 4238#
4014# Hardware Spinlock drivers 4239# Hardware Spinlock drivers
@@ -4016,6 +4241,7 @@ CONFIG_MXM_WMI=m
4016CONFIG_CLKEVT_I8253=y 4241CONFIG_CLKEVT_I8253=y
4017CONFIG_I8253_LOCK=y 4242CONFIG_I8253_LOCK=y
4018CONFIG_CLKBLD_I8253=y 4243CONFIG_CLKBLD_I8253=y
4244# CONFIG_MAILBOX is not set
4019CONFIG_IOMMU_API=y 4245CONFIG_IOMMU_API=y
4020CONFIG_IOMMU_SUPPORT=y 4246CONFIG_IOMMU_SUPPORT=y
4021CONFIG_AMD_IOMMU=y 4247CONFIG_AMD_IOMMU=y
@@ -4028,14 +4254,22 @@ CONFIG_INTEL_IOMMU_FLOPPY_WA=y
4028CONFIG_IRQ_REMAP=y 4254CONFIG_IRQ_REMAP=y
4029 4255
4030# 4256#
4031# Remoteproc drivers (EXPERIMENTAL) 4257# Remoteproc drivers
4032# 4258#
4259# CONFIG_STE_MODEM_RPROC is not set
4033 4260
4034# 4261#
4035# Rpmsg drivers (EXPERIMENTAL) 4262# Rpmsg drivers
4036# 4263#
4037CONFIG_VIRT_DRIVERS=y
4038# CONFIG_PM_DEVFREQ is not set 4264# CONFIG_PM_DEVFREQ is not set
4265# CONFIG_EXTCON is not set
4266# CONFIG_MEMORY is not set
4267# CONFIG_IIO is not set
4268# CONFIG_NTB is not set
4269# CONFIG_VME_BUS is not set
4270# CONFIG_PWM is not set
4271# CONFIG_IPACK_BUS is not set
4272# CONFIG_RESET_CONTROLLER is not set
4039 4273
4040# 4274#
4041# Firmware Drivers 4275# Firmware Drivers
@@ -4065,7 +4299,6 @@ CONFIG_EXT3_FS_XATTR=y
4065CONFIG_EXT3_FS_POSIX_ACL=y 4299CONFIG_EXT3_FS_POSIX_ACL=y
4066CONFIG_EXT3_FS_SECURITY=y 4300CONFIG_EXT3_FS_SECURITY=y
4067CONFIG_EXT4_FS=m 4301CONFIG_EXT4_FS=m
4068CONFIG_EXT4_FS_XATTR=y
4069CONFIG_EXT4_FS_POSIX_ACL=y 4302CONFIG_EXT4_FS_POSIX_ACL=y
4070CONFIG_EXT4_FS_SECURITY=y 4303CONFIG_EXT4_FS_SECURITY=y
4071# CONFIG_EXT4_DEBUG is not set 4304# CONFIG_EXT4_DEBUG is not set
@@ -4098,6 +4331,8 @@ CONFIG_OCFS2_DEBUG_MASKLOG=y
4098CONFIG_BTRFS_FS=m 4331CONFIG_BTRFS_FS=m
4099CONFIG_BTRFS_FS_POSIX_ACL=y 4332CONFIG_BTRFS_FS_POSIX_ACL=y
4100# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set 4333# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
4334# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
4335# CONFIG_BTRFS_DEBUG is not set
4101CONFIG_NILFS2_FS=m 4336CONFIG_NILFS2_FS=m
4102CONFIG_FS_POSIX_ACL=y 4337CONFIG_FS_POSIX_ACL=y
4103CONFIG_EXPORTFS=m 4338CONFIG_EXPORTFS=m
@@ -4171,6 +4406,7 @@ CONFIG_MISC_FILESYSTEMS=y
4171# CONFIG_ADFS_FS is not set 4406# CONFIG_ADFS_FS is not set
4172# CONFIG_AFFS_FS is not set 4407# CONFIG_AFFS_FS is not set
4173CONFIG_ECRYPT_FS=m 4408CONFIG_ECRYPT_FS=m
4409# CONFIG_ECRYPT_FS_MESSAGING is not set
4174CONFIG_HFS_FS=m 4410CONFIG_HFS_FS=m
4175CONFIG_HFSPLUS_FS=m 4411CONFIG_HFSPLUS_FS=m
4176# CONFIG_BEFS_FS is not set 4412# CONFIG_BEFS_FS is not set
@@ -4194,11 +4430,9 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
4194# CONFIG_JFFS2_CMODE_SIZE is not set 4430# CONFIG_JFFS2_CMODE_SIZE is not set
4195# CONFIG_JFFS2_CMODE_FAVOURLZO is not set 4431# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
4196CONFIG_UBIFS_FS=m 4432CONFIG_UBIFS_FS=m
4197CONFIG_UBIFS_FS_XATTR=y
4198# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set 4433# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
4199CONFIG_UBIFS_FS_LZO=y 4434CONFIG_UBIFS_FS_LZO=y
4200CONFIG_UBIFS_FS_ZLIB=y 4435CONFIG_UBIFS_FS_ZLIB=y
4201# CONFIG_UBIFS_FS_DEBUG is not set
4202CONFIG_LOGFS=m 4436CONFIG_LOGFS=m
4203CONFIG_CRAMFS=m 4437CONFIG_CRAMFS=m
4204CONFIG_SQUASHFS=m 4438CONFIG_SQUASHFS=m
@@ -4221,18 +4455,26 @@ CONFIG_ROMFS_BACKED_BY_BLOCK=y
4221# CONFIG_ROMFS_BACKED_BY_BOTH is not set 4455# CONFIG_ROMFS_BACKED_BY_BOTH is not set
4222CONFIG_ROMFS_ON_BLOCK=y 4456CONFIG_ROMFS_ON_BLOCK=y
4223CONFIG_PSTORE=y 4457CONFIG_PSTORE=y
4458# CONFIG_PSTORE_CONSOLE is not set
4459# CONFIG_PSTORE_RAM is not set
4224CONFIG_SYSV_FS=m 4460CONFIG_SYSV_FS=m
4225CONFIG_UFS_FS=m 4461CONFIG_UFS_FS=m
4226# CONFIG_UFS_FS_WRITE is not set 4462# CONFIG_UFS_FS_WRITE is not set
4227# CONFIG_UFS_DEBUG is not set 4463# CONFIG_UFS_DEBUG is not set
4228CONFIG_EXOFS_FS=m 4464CONFIG_EXOFS_FS=m
4229# CONFIG_EXOFS_DEBUG is not set 4465# CONFIG_EXOFS_DEBUG is not set
4466CONFIG_F2FS_FS=m
4467CONFIG_F2FS_STAT_FS=y
4468CONFIG_F2FS_FS_XATTR=y
4469CONFIG_F2FS_FS_POSIX_ACL=y
4230CONFIG_ORE=m 4470CONFIG_ORE=m
4231CONFIG_NETWORK_FILESYSTEMS=y 4471CONFIG_NETWORK_FILESYSTEMS=y
4232CONFIG_NFS_FS=m 4472CONFIG_NFS_FS=m
4233CONFIG_NFS_V3=y 4473CONFIG_NFS_V2=m
4474CONFIG_NFS_V3=m
4234# CONFIG_NFS_V3_ACL is not set 4475# CONFIG_NFS_V3_ACL is not set
4235CONFIG_NFS_V4=y 4476CONFIG_NFS_V4=m
4477# CONFIG_NFS_SWAP is not set
4236# CONFIG_NFS_V4_1 is not set 4478# CONFIG_NFS_V4_1 is not set
4237# CONFIG_NFS_FSCACHE is not set 4479# CONFIG_NFS_FSCACHE is not set
4238# CONFIG_NFS_USE_LEGACY_DNS is not set 4480# CONFIG_NFS_USE_LEGACY_DNS is not set
@@ -4258,10 +4500,12 @@ CONFIG_CIFS=m
4258# CONFIG_CIFS_UPCALL is not set 4500# CONFIG_CIFS_UPCALL is not set
4259CONFIG_CIFS_XATTR=y 4501CONFIG_CIFS_XATTR=y
4260CONFIG_CIFS_POSIX=y 4502CONFIG_CIFS_POSIX=y
4503CONFIG_CIFS_ACL=y
4504CONFIG_CIFS_DEBUG=y
4261# CONFIG_CIFS_DEBUG2 is not set 4505# CONFIG_CIFS_DEBUG2 is not set
4262CONFIG_CIFS_DFS_UPCALL=y 4506CONFIG_CIFS_DFS_UPCALL=y
4507# CONFIG_CIFS_SMB2 is not set
4263# CONFIG_CIFS_FSCACHE is not set 4508# CONFIG_CIFS_FSCACHE is not set
4264CONFIG_CIFS_ACL=y
4265# CONFIG_NCP_FS is not set 4509# CONFIG_NCP_FS is not set
4266# CONFIG_CODA_FS is not set 4510# CONFIG_CODA_FS is not set
4267# CONFIG_AFS_FS is not set 4511# CONFIG_AFS_FS is not set
@@ -4307,6 +4551,17 @@ CONFIG_NLS_ISO8859_14=m
4307CONFIG_NLS_ISO8859_15=m 4551CONFIG_NLS_ISO8859_15=m
4308CONFIG_NLS_KOI8_R=m 4552CONFIG_NLS_KOI8_R=m
4309CONFIG_NLS_KOI8_U=m 4553CONFIG_NLS_KOI8_U=m
4554CONFIG_NLS_MAC_ROMAN=m
4555CONFIG_NLS_MAC_CELTIC=m
4556CONFIG_NLS_MAC_CENTEURO=m
4557CONFIG_NLS_MAC_CROATIAN=m
4558CONFIG_NLS_MAC_CYRILLIC=m
4559CONFIG_NLS_MAC_GAELIC=m
4560CONFIG_NLS_MAC_GREEK=m
4561CONFIG_NLS_MAC_ICELAND=m
4562CONFIG_NLS_MAC_INUIT=m
4563CONFIG_NLS_MAC_ROMANIAN=m
4564CONFIG_NLS_MAC_TURKISH=m
4310CONFIG_NLS_UTF8=m 4565CONFIG_NLS_UTF8=m
4311CONFIG_DLM=m 4566CONFIG_DLM=m
4312# CONFIG_DLM_DEBUG is not set 4567# CONFIG_DLM_DEBUG is not set
@@ -4322,6 +4577,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
4322CONFIG_FRAME_WARN=1024 4577CONFIG_FRAME_WARN=1024
4323CONFIG_MAGIC_SYSRQ=y 4578CONFIG_MAGIC_SYSRQ=y
4324# CONFIG_STRIP_ASM_SYMS is not set 4579# CONFIG_STRIP_ASM_SYMS is not set
4580# CONFIG_READABLE_ASM is not set
4325# CONFIG_UNUSED_SYMBOLS is not set 4581# CONFIG_UNUSED_SYMBOLS is not set
4326CONFIG_DEBUG_FS=y 4582CONFIG_DEBUG_FS=y
4327# CONFIG_HEADERS_CHECK is not set 4583# CONFIG_HEADERS_CHECK is not set
@@ -4334,12 +4590,15 @@ CONFIG_HARDLOCKUP_DETECTOR=y
4334CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 4590CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
4335# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 4591# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
4336CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 4592CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
4593# CONFIG_PANIC_ON_OOPS is not set
4594CONFIG_PANIC_ON_OOPS_VALUE=0
4337# CONFIG_DETECT_HUNG_TASK is not set 4595# CONFIG_DETECT_HUNG_TASK is not set
4338CONFIG_SCHED_DEBUG=y 4596CONFIG_SCHED_DEBUG=y
4339CONFIG_SCHEDSTATS=y 4597CONFIG_SCHEDSTATS=y
4340CONFIG_TIMER_STATS=y 4598CONFIG_TIMER_STATS=y
4341# CONFIG_DEBUG_OBJECTS is not set 4599# CONFIG_DEBUG_OBJECTS is not set
4342# CONFIG_SLUB_STATS is not set 4600# CONFIG_SLUB_STATS is not set
4601CONFIG_HAVE_DEBUG_KMEMLEAK=y
4343# CONFIG_DEBUG_KMEMLEAK is not set 4602# CONFIG_DEBUG_KMEMLEAK is not set
4344# CONFIG_DEBUG_RT_MUTEXES is not set 4603# CONFIG_DEBUG_RT_MUTEXES is not set
4345# CONFIG_RT_MUTEX_TESTER is not set 4604# CONFIG_RT_MUTEX_TESTER is not set
@@ -4347,7 +4606,6 @@ CONFIG_TIMER_STATS=y
4347# CONFIG_DEBUG_MUTEXES is not set 4606# CONFIG_DEBUG_MUTEXES is not set
4348# CONFIG_DEBUG_LOCK_ALLOC is not set 4607# CONFIG_DEBUG_LOCK_ALLOC is not set
4349# CONFIG_PROVE_LOCKING is not set 4608# CONFIG_PROVE_LOCKING is not set
4350# CONFIG_SPARSE_RCU_POINTER is not set
4351# CONFIG_LOCK_STAT is not set 4609# CONFIG_LOCK_STAT is not set
4352# CONFIG_DEBUG_ATOMIC_SLEEP is not set 4610# CONFIG_DEBUG_ATOMIC_SLEEP is not set
4353# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 4611# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
@@ -4368,6 +4626,11 @@ CONFIG_DEBUG_BUGVERBOSE=y
4368CONFIG_ARCH_WANT_FRAME_POINTERS=y 4626CONFIG_ARCH_WANT_FRAME_POINTERS=y
4369CONFIG_FRAME_POINTER=y 4627CONFIG_FRAME_POINTER=y
4370# CONFIG_BOOT_PRINTK_DELAY is not set 4628# CONFIG_BOOT_PRINTK_DELAY is not set
4629
4630#
4631# RCU Debugging
4632#
4633# CONFIG_SPARSE_RCU_POINTER is not set
4371# CONFIG_RCU_TORTURE_TEST is not set 4634# CONFIG_RCU_TORTURE_TEST is not set
4372CONFIG_RCU_CPU_STALL_TIMEOUT=60 4635CONFIG_RCU_CPU_STALL_TIMEOUT=60
4373# CONFIG_RCU_CPU_STALL_INFO is not set 4636# CONFIG_RCU_CPU_STALL_INFO is not set
@@ -4378,9 +4641,11 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
4378# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 4641# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
4379# CONFIG_DEBUG_PER_CPU_MAPS is not set 4642# CONFIG_DEBUG_PER_CPU_MAPS is not set
4380# CONFIG_LKDTM is not set 4643# CONFIG_LKDTM is not set
4381# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set 4644# CONFIG_NOTIFIER_ERROR_INJECTION is not set
4382# CONFIG_FAULT_INJECTION is not set 4645# CONFIG_FAULT_INJECTION is not set
4383CONFIG_LATENCYTOP=y 4646CONFIG_LATENCYTOP=y
4647CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
4648# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
4384# CONFIG_DEBUG_PAGEALLOC is not set 4649# CONFIG_DEBUG_PAGEALLOC is not set
4385CONFIG_USER_STACKTRACE_SUPPORT=y 4650CONFIG_USER_STACKTRACE_SUPPORT=y
4386CONFIG_HAVE_FUNCTION_TRACER=y 4651CONFIG_HAVE_FUNCTION_TRACER=y
@@ -4388,13 +4653,18 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
4388CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y 4653CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
4389CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 4654CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
4390CONFIG_HAVE_DYNAMIC_FTRACE=y 4655CONFIG_HAVE_DYNAMIC_FTRACE=y
4656CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
4391CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 4657CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
4392CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 4658CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
4659CONFIG_HAVE_FENTRY=y
4393CONFIG_HAVE_C_RECORDMCOUNT=y 4660CONFIG_HAVE_C_RECORDMCOUNT=y
4661CONFIG_TRACE_CLOCK=y
4394CONFIG_RING_BUFFER=y 4662CONFIG_RING_BUFFER=y
4395CONFIG_RING_BUFFER_ALLOW_SWAP=y 4663CONFIG_RING_BUFFER_ALLOW_SWAP=y
4396CONFIG_TRACING_SUPPORT=y 4664CONFIG_TRACING_SUPPORT=y
4397# CONFIG_FTRACE is not set 4665# CONFIG_FTRACE is not set
4666# CONFIG_RBTREE_TEST is not set
4667# CONFIG_INTERVAL_TREE_TEST is not set
4398# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set 4668# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
4399# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set 4669# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
4400# CONFIG_DYNAMIC_DEBUG is not set 4670# CONFIG_DYNAMIC_DEBUG is not set
@@ -4405,6 +4675,7 @@ CONFIG_TRACING_SUPPORT=y
4405CONFIG_HAVE_ARCH_KGDB=y 4675CONFIG_HAVE_ARCH_KGDB=y
4406# CONFIG_KGDB is not set 4676# CONFIG_KGDB is not set
4407CONFIG_HAVE_ARCH_KMEMCHECK=y 4677CONFIG_HAVE_ARCH_KMEMCHECK=y
4678# CONFIG_TEST_STRING_HELPERS is not set
4408CONFIG_TEST_KSTRTOX=m 4679CONFIG_TEST_KSTRTOX=m
4409CONFIG_STRICT_DEVMEM=y 4680CONFIG_STRICT_DEVMEM=y
4410# CONFIG_X86_VERBOSE_BOOTUP is not set 4681# CONFIG_X86_VERBOSE_BOOTUP is not set
@@ -4415,6 +4686,7 @@ CONFIG_DEBUG_RODATA=y
4415# CONFIG_DEBUG_RODATA_TEST is not set 4686# CONFIG_DEBUG_RODATA_TEST is not set
4416CONFIG_DEBUG_SET_MODULE_RONX=y 4687CONFIG_DEBUG_SET_MODULE_RONX=y
4417CONFIG_DEBUG_NX_TEST=m 4688CONFIG_DEBUG_NX_TEST=m
4689# CONFIG_DEBUG_TLBFLUSH is not set
4418# CONFIG_IOMMU_DEBUG is not set 4690# CONFIG_IOMMU_DEBUG is not set
4419# CONFIG_IOMMU_STRESS is not set 4691# CONFIG_IOMMU_STRESS is not set
4420CONFIG_HAVE_MMIOTRACE_SUPPORT=y 4692CONFIG_HAVE_MMIOTRACE_SUPPORT=y
@@ -4431,17 +4703,13 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0
4431CONFIG_DEBUG_BOOT_PARAMS=y 4703CONFIG_DEBUG_BOOT_PARAMS=y
4432# CONFIG_CPA_DEBUG is not set 4704# CONFIG_CPA_DEBUG is not set
4433# CONFIG_OPTIMIZE_INLINING is not set 4705# CONFIG_OPTIMIZE_INLINING is not set
4434# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
4435CONFIG_DEBUG_NMI_SELFTEST=y 4706CONFIG_DEBUG_NMI_SELFTEST=y
4436 4707
4437# 4708#
4438# Linux VServer 4709# Linux VServer
4439# 4710#
4440CONFIG_VSERVER_AUTO_LBACK=y 4711CONFIG_VSERVER_AUTO_LBACK=y
4441CONFIG_VSERVER_AUTO_SINGLE=y
4442# CONFIG_VSERVER_COWBL is not set 4712# CONFIG_VSERVER_COWBL is not set
4443# CONFIG_VSERVER_VTIME is not set
4444# CONFIG_VSERVER_DEVICE is not set
4445CONFIG_VSERVER_PROC_SECURE=y 4713CONFIG_VSERVER_PROC_SECURE=y
4446# CONFIG_TAGGING_NONE is not set 4714# CONFIG_TAGGING_NONE is not set
4447# CONFIG_TAGGING_UID16 is not set 4715# CONFIG_TAGGING_UID16 is not set
@@ -4454,6 +4722,7 @@ CONFIG_VSERVER_CONTEXTS=768
4454CONFIG_VSERVER_WARN=y 4722CONFIG_VSERVER_WARN=y
4455CONFIG_VSERVER_WARN_DEVPTS=y 4723CONFIG_VSERVER_WARN_DEVPTS=y
4456# CONFIG_VSERVER_DEBUG is not set 4724# CONFIG_VSERVER_DEBUG is not set
4725# CONFIG_VSERVER_EXTRA_MNT_CHECK is not set
4457CONFIG_QUOTES_ISO8859=y 4726CONFIG_QUOTES_ISO8859=y
4458# CONFIG_QUOTES_UTF8 is not set 4727# CONFIG_QUOTES_UTF8 is not set
4459# CONFIG_QUOTES_ASCII is not set 4728# CONFIG_QUOTES_ASCII is not set
@@ -4474,6 +4743,7 @@ CONFIG_SECURITYFS=y
4474# CONFIG_SECURITY_NETWORK is not set 4743# CONFIG_SECURITY_NETWORK is not set
4475# CONFIG_SECURITY_PATH is not set 4744# CONFIG_SECURITY_PATH is not set
4476# CONFIG_INTEL_TXT is not set 4745# CONFIG_INTEL_TXT is not set
4746# CONFIG_SECURITY_SMACK is not set
4477# CONFIG_SECURITY_TOMOYO is not set 4747# CONFIG_SECURITY_TOMOYO is not set
4478# CONFIG_SECURITY_APPARMOR is not set 4748# CONFIG_SECURITY_APPARMOR is not set
4479# CONFIG_SECURITY_YAMA is not set 4749# CONFIG_SECURITY_YAMA is not set
@@ -4486,8 +4756,6 @@ CONFIG_ASYNC_MEMCPY=m
4486CONFIG_ASYNC_XOR=m 4756CONFIG_ASYNC_XOR=m
4487CONFIG_ASYNC_PQ=m 4757CONFIG_ASYNC_PQ=m
4488CONFIG_ASYNC_RAID6_RECOV=m 4758CONFIG_ASYNC_RAID6_RECOV=m
4489CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
4490CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
4491CONFIG_CRYPTO=y 4759CONFIG_CRYPTO=y
4492 4760
4493# 4761#
@@ -4516,6 +4784,8 @@ CONFIG_CRYPTO_WORKQUEUE=y
4516CONFIG_CRYPTO_CRYPTD=m 4784CONFIG_CRYPTO_CRYPTD=m
4517CONFIG_CRYPTO_AUTHENC=m 4785CONFIG_CRYPTO_AUTHENC=m
4518CONFIG_CRYPTO_TEST=m 4786CONFIG_CRYPTO_TEST=m
4787CONFIG_CRYPTO_ABLK_HELPER_X86=m
4788CONFIG_CRYPTO_GLUE_HELPER_X86=m
4519 4789
4520# 4790#
4521# Authenticated Encryption with Associated Data 4791# Authenticated Encryption with Associated Data
@@ -4538,6 +4808,7 @@ CONFIG_CRYPTO_XTS=m
4538# 4808#
4539# Hash modes 4809# Hash modes
4540# 4810#
4811CONFIG_CRYPTO_CMAC=m
4541CONFIG_CRYPTO_HMAC=m 4812CONFIG_CRYPTO_HMAC=m
4542CONFIG_CRYPTO_XCBC=m 4813CONFIG_CRYPTO_XCBC=m
4543CONFIG_CRYPTO_VMAC=m 4814CONFIG_CRYPTO_VMAC=m
@@ -4547,6 +4818,8 @@ CONFIG_CRYPTO_VMAC=m
4547# 4818#
4548CONFIG_CRYPTO_CRC32C=m 4819CONFIG_CRYPTO_CRC32C=m
4549CONFIG_CRYPTO_CRC32C_INTEL=m 4820CONFIG_CRYPTO_CRC32C_INTEL=m
4821CONFIG_CRYPTO_CRC32=m
4822CONFIG_CRYPTO_CRC32_PCLMUL=m
4550CONFIG_CRYPTO_GHASH=m 4823CONFIG_CRYPTO_GHASH=m
4551CONFIG_CRYPTO_MD4=m 4824CONFIG_CRYPTO_MD4=m
4552CONFIG_CRYPTO_MD5=y 4825CONFIG_CRYPTO_MD5=y
@@ -4557,6 +4830,8 @@ CONFIG_CRYPTO_RMD256=m
4557CONFIG_CRYPTO_RMD320=m 4830CONFIG_CRYPTO_RMD320=m
4558CONFIG_CRYPTO_SHA1=m 4831CONFIG_CRYPTO_SHA1=m
4559CONFIG_CRYPTO_SHA1_SSSE3=m 4832CONFIG_CRYPTO_SHA1_SSSE3=m
4833CONFIG_CRYPTO_SHA256_SSSE3=m
4834CONFIG_CRYPTO_SHA512_SSSE3=m
4560CONFIG_CRYPTO_SHA256=y 4835CONFIG_CRYPTO_SHA256=y
4561CONFIG_CRYPTO_SHA512=m 4836CONFIG_CRYPTO_SHA512=m
4562CONFIG_CRYPTO_TGR192=m 4837CONFIG_CRYPTO_TGR192=m
@@ -4566,7 +4841,7 @@ CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
4566# 4841#
4567# Ciphers 4842# Ciphers
4568# 4843#
4569CONFIG_CRYPTO_AES=m 4844CONFIG_CRYPTO_AES=y
4570CONFIG_CRYPTO_AES_X86_64=m 4845CONFIG_CRYPTO_AES_X86_64=m
4571CONFIG_CRYPTO_AES_NI_INTEL=m 4846CONFIG_CRYPTO_AES_NI_INTEL=m
4572CONFIG_CRYPTO_ANUBIS=m 4847CONFIG_CRYPTO_ANUBIS=m
@@ -4576,8 +4851,13 @@ CONFIG_CRYPTO_BLOWFISH_COMMON=m
4576CONFIG_CRYPTO_BLOWFISH_X86_64=m 4851CONFIG_CRYPTO_BLOWFISH_X86_64=m
4577CONFIG_CRYPTO_CAMELLIA=m 4852CONFIG_CRYPTO_CAMELLIA=m
4578CONFIG_CRYPTO_CAMELLIA_X86_64=m 4853CONFIG_CRYPTO_CAMELLIA_X86_64=m
4854CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
4855CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
4856CONFIG_CRYPTO_CAST_COMMON=m
4579CONFIG_CRYPTO_CAST5=m 4857CONFIG_CRYPTO_CAST5=m
4858CONFIG_CRYPTO_CAST5_AVX_X86_64=m
4580CONFIG_CRYPTO_CAST6=m 4859CONFIG_CRYPTO_CAST6=m
4860CONFIG_CRYPTO_CAST6_AVX_X86_64=m
4581CONFIG_CRYPTO_DES=m 4861CONFIG_CRYPTO_DES=m
4582CONFIG_CRYPTO_FCRYPT=m 4862CONFIG_CRYPTO_FCRYPT=m
4583CONFIG_CRYPTO_KHAZAD=m 4863CONFIG_CRYPTO_KHAZAD=m
@@ -4586,11 +4866,14 @@ CONFIG_CRYPTO_SALSA20_X86_64=m
4586CONFIG_CRYPTO_SEED=m 4866CONFIG_CRYPTO_SEED=m
4587CONFIG_CRYPTO_SERPENT=m 4867CONFIG_CRYPTO_SERPENT=m
4588CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m 4868CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
4869CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
4870CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
4589CONFIG_CRYPTO_TEA=m 4871CONFIG_CRYPTO_TEA=m
4590CONFIG_CRYPTO_TWOFISH=m 4872CONFIG_CRYPTO_TWOFISH=m
4591CONFIG_CRYPTO_TWOFISH_COMMON=m 4873CONFIG_CRYPTO_TWOFISH_COMMON=m
4592CONFIG_CRYPTO_TWOFISH_X86_64=m 4874CONFIG_CRYPTO_TWOFISH_X86_64=m
4593CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m 4875CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
4876CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
4594 4877
4595# 4878#
4596# Compression 4879# Compression
@@ -4610,17 +4893,24 @@ CONFIG_CRYPTO_HW=y
4610CONFIG_CRYPTO_DEV_PADLOCK=m 4893CONFIG_CRYPTO_DEV_PADLOCK=m
4611CONFIG_CRYPTO_DEV_PADLOCK_AES=m 4894CONFIG_CRYPTO_DEV_PADLOCK_AES=m
4612CONFIG_CRYPTO_DEV_PADLOCK_SHA=m 4895CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
4896CONFIG_ASYMMETRIC_KEY_TYPE=m
4897CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m
4898CONFIG_PUBLIC_KEY_ALGO_RSA=m
4899CONFIG_X509_CERTIFICATE_PARSER=m
4613CONFIG_HAVE_KVM=y 4900CONFIG_HAVE_KVM=y
4614CONFIG_HAVE_KVM_IRQCHIP=y 4901CONFIG_HAVE_KVM_IRQCHIP=y
4902CONFIG_HAVE_KVM_IRQ_ROUTING=y
4615CONFIG_HAVE_KVM_EVENTFD=y 4903CONFIG_HAVE_KVM_EVENTFD=y
4616CONFIG_KVM_APIC_ARCHITECTURE=y 4904CONFIG_KVM_APIC_ARCHITECTURE=y
4617CONFIG_KVM_MMIO=y 4905CONFIG_KVM_MMIO=y
4618CONFIG_KVM_ASYNC_PF=y 4906CONFIG_KVM_ASYNC_PF=y
4907CONFIG_HAVE_KVM_MSI=y
4908CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
4619CONFIG_VIRTUALIZATION=y 4909CONFIG_VIRTUALIZATION=y
4620CONFIG_KVM=m 4910CONFIG_KVM=m
4621CONFIG_KVM_INTEL=m 4911CONFIG_KVM_INTEL=m
4622CONFIG_KVM_AMD=m 4912CONFIG_KVM_AMD=m
4623CONFIG_VHOST_NET=m 4913CONFIG_KVM_DEVICE_ASSIGNMENT=y
4624# CONFIG_BINARY_PRINTF is not set 4914# CONFIG_BINARY_PRINTF is not set
4625 4915
4626# 4916#
@@ -4628,6 +4918,8 @@ CONFIG_VHOST_NET=m
4628# 4918#
4629CONFIG_RAID6_PQ=m 4919CONFIG_RAID6_PQ=m
4630CONFIG_BITREVERSE=y 4920CONFIG_BITREVERSE=y
4921CONFIG_GENERIC_STRNCPY_FROM_USER=y
4922CONFIG_GENERIC_STRNLEN_USER=y
4631CONFIG_GENERIC_FIND_FIRST_BIT=y 4923CONFIG_GENERIC_FIND_FIRST_BIT=y
4632CONFIG_GENERIC_PCI_IOMAP=y 4924CONFIG_GENERIC_PCI_IOMAP=y
4633CONFIG_GENERIC_IOMAP=y 4925CONFIG_GENERIC_IOMAP=y
@@ -4678,6 +4970,11 @@ CONFIG_CHECK_SIGNATURE=y
4678CONFIG_CPU_RMAP=y 4970CONFIG_CPU_RMAP=y
4679CONFIG_DQL=y 4971CONFIG_DQL=y
4680CONFIG_NLATTR=y 4972CONFIG_NLATTR=y
4973CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
4681CONFIG_LRU_CACHE=m 4974CONFIG_LRU_CACHE=m
4682CONFIG_AVERAGE=y 4975CONFIG_AVERAGE=y
4976CONFIG_CLZ_TAB=y
4683CONFIG_CORDIC=m 4977CONFIG_CORDIC=m
4978# CONFIG_DDR is not set
4979CONFIG_MPILIB=m
4980CONFIG_OID_REGISTRY=m
diff --git a/main/linux-vserver/patch-3.4.65-vs2.3.3.9.diff b/main/linux-vserver/patch-3.10.18-vs2.3.6.6.diff
index 3a56542dff..56fb76ac9b 100644
--- a/main/linux-vserver/patch-3.4.65-vs2.3.3.9.diff
+++ b/main/linux-vserver/patch-3.10.18-vs2.3.6.6.diff
@@ -1,6 +1,6 @@
1diff -NurpP --minimal linux-3.4.57/Documentation/vserver/debug.txt linux-3.4.57-vs2.3.3.9/Documentation/vserver/debug.txt 1diff -NurpP --minimal linux-3.10.17/Documentation/vserver/debug.txt linux-3.10.17-vs2.3.6.6/Documentation/vserver/debug.txt
2--- linux-3.4.57/Documentation/vserver/debug.txt 1970-01-01 00:00:00.000000000 +0000 2--- linux-3.10.17/Documentation/vserver/debug.txt 1970-01-01 00:00:00.000000000 +0000
3+++ linux-3.4.57-vs2.3.3.9/Documentation/vserver/debug.txt 2012-05-21 16:15:04.000000000 +0000 3+++ linux-3.10.17-vs2.3.6.6/Documentation/vserver/debug.txt 2013-08-22 20:29:59.000000000 +0000
4@@ -0,0 +1,154 @@ 4@@ -0,0 +1,154 @@
5+ 5+
6+debug_cvirt: 6+debug_cvirt:
@@ -156,22 +156,22 @@ diff -NurpP --minimal linux-3.4.57/Documentation/vserver/debug.txt linux-3.4.57-
156+ m 2^m "vx_acc_page[%5d,%s,%2d]: %5d%s" 156+ m 2^m "vx_acc_page[%5d,%s,%2d]: %5d%s"
157+ "vx_acc_pages[%5d,%s,%2d]: %5d += %5d" 157+ "vx_acc_pages[%5d,%s,%2d]: %5d += %5d"
158+ "vx_pages_avail[%5d,%s,%2d]: %5ld > %5d + %5d" 158+ "vx_pages_avail[%5d,%s,%2d]: %5ld > %5d + %5d"
159diff -NurpP --minimal linux-3.4.57/Makefile linux-3.4.57-vs2.3.3.9/Makefile 159diff -NurpP --minimal linux-3.10.17/Makefile linux-3.10.17-vs2.3.6.6/Makefile
160--- linux-3.4.57/Makefile 2013-08-13 14:12:47.000000000 +0000 160--- linux-3.10.17/Makefile 2013-10-25 15:17:23.000000000 +0000
161+++ linux-3.4.57-vs2.3.3.9/Makefile 2013-08-13 17:53:16.000000000 +0000 161+++ linux-3.10.17-vs2.3.6.6/Makefile 2013-10-26 18:35:12.000000000 +0000
162@@ -1,7 +1,7 @@ 162@@ -1,7 +1,7 @@
163 VERSION = 3 163 VERSION = 3
164 PATCHLEVEL = 4 164 PATCHLEVEL = 10
165 SUBLEVEL = 65 165 SUBLEVEL = 18
166-EXTRAVERSION = 166-EXTRAVERSION =
167+EXTRAVERSION = -vs2.3.3.9 167+EXTRAVERSION = -vs2.3.6.6
168 NAME = Saber-toothed Squirrel 168 NAME = TOSSUG Baby Fish
169 169
170 # *DOCUMENTATION* 170 # *DOCUMENTATION*
171diff -NurpP --minimal linux-3.4.57/arch/alpha/Kconfig linux-3.4.57-vs2.3.3.9/arch/alpha/Kconfig 171diff -NurpP --minimal linux-3.10.17/arch/alpha/Kconfig linux-3.10.17-vs2.3.6.6/arch/alpha/Kconfig
172--- linux-3.4.57/arch/alpha/Kconfig 2012-05-21 16:06:12.000000000 +0000 172--- linux-3.10.17/arch/alpha/Kconfig 2013-07-14 17:00:13.000000000 +0000
173+++ linux-3.4.57-vs2.3.3.9/arch/alpha/Kconfig 2012-05-21 16:15:04.000000000 +0000 173+++ linux-3.10.17-vs2.3.6.6/arch/alpha/Kconfig 2013-08-22 20:29:59.000000000 +0000
174@@ -662,6 +662,8 @@ config DUMMY_CONSOLE 174@@ -665,6 +665,8 @@ config DUMMY_CONSOLE
175 depends on VGA_HOSE 175 depends on VGA_HOSE
176 default y 176 default y
177 177
@@ -180,55 +180,9 @@ diff -NurpP --minimal linux-3.4.57/arch/alpha/Kconfig linux-3.4.57-vs2.3.3.9/arc
180 source "security/Kconfig" 180 source "security/Kconfig"
181 181
182 source "crypto/Kconfig" 182 source "crypto/Kconfig"
183diff -NurpP --minimal linux-3.4.57/arch/alpha/kernel/entry.S linux-3.4.57-vs2.3.3.9/arch/alpha/kernel/entry.S 183diff -NurpP --minimal linux-3.10.17/arch/alpha/kernel/systbls.S linux-3.10.17-vs2.3.6.6/arch/alpha/kernel/systbls.S
184--- linux-3.4.57/arch/alpha/kernel/entry.S 2010-10-21 11:06:45.000000000 +0000 184--- linux-3.10.17/arch/alpha/kernel/systbls.S 2013-02-19 13:56:11.000000000 +0000
185+++ linux-3.4.57-vs2.3.3.9/arch/alpha/kernel/entry.S 2012-05-21 16:15:04.000000000 +0000 185+++ linux-3.10.17-vs2.3.6.6/arch/alpha/kernel/systbls.S 2013-08-22 20:29:59.000000000 +0000
186@@ -860,24 +860,15 @@ sys_getxgid:
187 .globl sys_getxpid
188 .ent sys_getxpid
189 sys_getxpid:
190+ lda $sp, -16($sp)
191+ stq $26, 0($sp)
192 .prologue 0
193- ldq $2, TI_TASK($8)
194
195- /* See linux/kernel/timer.c sys_getppid for discussion
196- about this loop. */
197- ldq $3, TASK_GROUP_LEADER($2)
198- ldq $4, TASK_REAL_PARENT($3)
199- ldl $0, TASK_TGID($2)
200-1: ldl $1, TASK_TGID($4)
201-#ifdef CONFIG_SMP
202- mov $4, $5
203- mb
204- ldq $3, TASK_GROUP_LEADER($2)
205- ldq $4, TASK_REAL_PARENT($3)
206- cmpeq $4, $5, $5
207- beq $5, 1b
208-#endif
209- stq $1, 80($sp)
210+ lda $16, 96($sp)
211+ jsr $26, do_getxpid
212+ ldq $26, 0($sp)
213+
214+ lda $sp, 16($sp)
215 ret
216 .end sys_getxpid
217
218diff -NurpP --minimal linux-3.4.57/arch/alpha/kernel/ptrace.c linux-3.4.57-vs2.3.3.9/arch/alpha/kernel/ptrace.c
219--- linux-3.4.57/arch/alpha/kernel/ptrace.c 2012-05-21 16:06:12.000000000 +0000
220+++ linux-3.4.57-vs2.3.3.9/arch/alpha/kernel/ptrace.c 2012-05-21 16:15:04.000000000 +0000
221@@ -13,6 +13,7 @@
222 #include <linux/user.h>
223 #include <linux/security.h>
224 #include <linux/signal.h>
225+#include <linux/vs_base.h>
226
227 #include <asm/uaccess.h>
228 #include <asm/pgtable.h>
229diff -NurpP --minimal linux-3.4.57/arch/alpha/kernel/systbls.S linux-3.4.57-vs2.3.3.9/arch/alpha/kernel/systbls.S
230--- linux-3.4.57/arch/alpha/kernel/systbls.S 2012-01-09 15:13:54.000000000 +0000
231+++ linux-3.4.57-vs2.3.3.9/arch/alpha/kernel/systbls.S 2012-05-21 16:15:04.000000000 +0000
232@@ -446,7 +446,7 @@ sys_call_table: 186@@ -446,7 +446,7 @@ sys_call_table:
233 .quad sys_stat64 /* 425 */ 187 .quad sys_stat64 /* 425 */
234 .quad sys_lstat64 188 .quad sys_lstat64
@@ -238,23 +192,23 @@ diff -NurpP --minimal linux-3.4.57/arch/alpha/kernel/systbls.S linux-3.4.57-vs2.
238 .quad sys_ni_syscall /* sys_mbind */ 192 .quad sys_ni_syscall /* sys_mbind */
239 .quad sys_ni_syscall /* sys_get_mempolicy */ 193 .quad sys_ni_syscall /* sys_get_mempolicy */
240 .quad sys_ni_syscall /* sys_set_mempolicy */ 194 .quad sys_ni_syscall /* sys_set_mempolicy */
241diff -NurpP --minimal linux-3.4.57/arch/alpha/kernel/traps.c linux-3.4.57-vs2.3.3.9/arch/alpha/kernel/traps.c 195diff -NurpP --minimal linux-3.10.17/arch/alpha/kernel/traps.c linux-3.10.17-vs2.3.6.6/arch/alpha/kernel/traps.c
242--- linux-3.4.57/arch/alpha/kernel/traps.c 2012-05-21 16:06:12.000000000 +0000 196--- linux-3.10.17/arch/alpha/kernel/traps.c 2013-07-14 17:00:13.000000000 +0000
243+++ linux-3.4.57-vs2.3.3.9/arch/alpha/kernel/traps.c 2012-05-21 16:15:04.000000000 +0000 197+++ linux-3.10.17-vs2.3.6.6/arch/alpha/kernel/traps.c 2013-08-22 20:29:59.000000000 +0000
244@@ -184,7 +184,8 @@ die_if_kernel(char * str, struct pt_regs 198@@ -177,7 +177,8 @@ die_if_kernel(char * str, struct pt_regs
245 #ifdef CONFIG_SMP 199 #ifdef CONFIG_SMP
246 printk("CPU %d ", hard_smp_processor_id()); 200 printk("CPU %d ", hard_smp_processor_id());
247 #endif 201 #endif
248- printk("%s(%d): %s %ld\n", current->comm, task_pid_nr(current), str, err); 202- printk("%s(%d): %s %ld\n", current->comm, task_pid_nr(current), str, err);
249+ printk("%s(%d[#%u]): %s %ld\n", current->comm, 203+ printk("%s(%d:#%u): %s %ld\n", current->comm,
250+ task_pid_nr(current), current->xid, str, err); 204+ task_pid_nr(current), current->xid, str, err);
251 dik_show_regs(regs, r9_15); 205 dik_show_regs(regs, r9_15);
252 add_taint(TAINT_DIE); 206 add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
253 dik_show_trace((unsigned long *)(regs+1)); 207 dik_show_trace((unsigned long *)(regs+1));
254diff -NurpP --minimal linux-3.4.57/arch/arm/Kconfig linux-3.4.57-vs2.3.3.9/arch/arm/Kconfig 208diff -NurpP --minimal linux-3.10.17/arch/arm/Kconfig linux-3.10.17-vs2.3.6.6/arch/arm/Kconfig
255--- linux-3.4.57/arch/arm/Kconfig 2013-08-13 14:12:47.000000000 +0000 209--- linux-3.10.17/arch/arm/Kconfig 2013-10-25 15:17:23.000000000 +0000
256+++ linux-3.4.57-vs2.3.3.9/arch/arm/Kconfig 2012-12-11 11:42:38.000000000 +0000 210+++ linux-3.10.17-vs2.3.6.6/arch/arm/Kconfig 2013-08-22 20:29:59.000000000 +0000
257@@ -2311,6 +2311,8 @@ source "fs/Kconfig" 211@@ -2238,6 +2238,8 @@ source "fs/Kconfig"
258 212
259 source "arch/arm/Kconfig.debug" 213 source "arch/arm/Kconfig.debug"
260 214
@@ -263,9 +217,9 @@ diff -NurpP --minimal linux-3.4.57/arch/arm/Kconfig linux-3.4.57-vs2.3.3.9/arch/
263 source "security/Kconfig" 217 source "security/Kconfig"
264 218
265 source "crypto/Kconfig" 219 source "crypto/Kconfig"
266diff -NurpP --minimal linux-3.4.57/arch/arm/kernel/calls.S linux-3.4.57-vs2.3.3.9/arch/arm/kernel/calls.S 220diff -NurpP --minimal linux-3.10.17/arch/arm/kernel/calls.S linux-3.10.17-vs2.3.6.6/arch/arm/kernel/calls.S
267--- linux-3.4.57/arch/arm/kernel/calls.S 2012-01-09 15:13:54.000000000 +0000 221--- linux-3.10.17/arch/arm/kernel/calls.S 2013-05-31 13:44:29.000000000 +0000
268+++ linux-3.4.57-vs2.3.3.9/arch/arm/kernel/calls.S 2012-05-21 16:15:04.000000000 +0000 222+++ linux-3.10.17-vs2.3.6.6/arch/arm/kernel/calls.S 2013-08-22 20:29:59.000000000 +0000
269@@ -322,7 +322,7 @@ 223@@ -322,7 +322,7 @@
270 /* 310 */ CALL(sys_request_key) 224 /* 310 */ CALL(sys_request_key)
271 CALL(sys_keyctl) 225 CALL(sys_keyctl)
@@ -275,37 +229,24 @@ diff -NurpP --minimal linux-3.4.57/arch/arm/kernel/calls.S linux-3.4.57-vs2.3.3.
275 CALL(sys_ioprio_set) 229 CALL(sys_ioprio_set)
276 /* 315 */ CALL(sys_ioprio_get) 230 /* 315 */ CALL(sys_ioprio_get)
277 CALL(sys_inotify_init) 231 CALL(sys_inotify_init)
278diff -NurpP --minimal linux-3.4.57/arch/arm/kernel/process.c linux-3.4.57-vs2.3.3.9/arch/arm/kernel/process.c 232diff -NurpP --minimal linux-3.10.17/arch/arm/kernel/traps.c linux-3.10.17-vs2.3.6.6/arch/arm/kernel/traps.c
279--- linux-3.4.57/arch/arm/kernel/process.c 2013-08-13 14:12:48.000000000 +0000 233--- linux-3.10.17/arch/arm/kernel/traps.c 2013-10-25 15:17:23.000000000 +0000
280+++ linux-3.4.57-vs2.3.3.9/arch/arm/kernel/process.c 2012-09-01 08:50:48.000000000 +0000 234+++ linux-3.10.17-vs2.3.6.6/arch/arm/kernel/traps.c 2013-08-22 20:29:59.000000000 +0000
281@@ -357,7 +357,8 @@ void __show_regs(struct pt_regs *regs) 235@@ -240,8 +240,8 @@ static int __die(const char *str, int er
282 void show_regs(struct pt_regs * regs)
283 {
284 printk("\n");
285- printk("Pid: %d, comm: %20s\n", task_pid_nr(current), current->comm);
286+ printk("Pid: %d[#%u], comm: %20s\n",
287+ task_pid_nr(current), current->xid, current->comm);
288 __show_regs(regs);
289 dump_stack();
290 }
291diff -NurpP --minimal linux-3.4.57/arch/arm/kernel/traps.c linux-3.4.57-vs2.3.3.9/arch/arm/kernel/traps.c
292--- linux-3.4.57/arch/arm/kernel/traps.c 2013-08-13 14:12:48.000000000 +0000
293+++ linux-3.4.57-vs2.3.3.9/arch/arm/kernel/traps.c 2012-10-22 13:09:53.000000000 +0000
294@@ -249,8 +249,8 @@ static int __die(const char *str, int er
295 236
296 print_modules(); 237 print_modules();
297 __show_regs(regs); 238 __show_regs(regs);
298- printk(KERN_EMERG "Process %.*s (pid: %d, stack limit = 0x%p)\n", 239- printk(KERN_EMERG "Process %.*s (pid: %d, stack limit = 0x%p)\n",
299- TASK_COMM_LEN, tsk->comm, task_pid_nr(tsk), thread + 1); 240- TASK_COMM_LEN, tsk->comm, task_pid_nr(tsk), end_of_stack(tsk));
300+ printk(KERN_EMERG "Process %.*s (pid: %d:#%u, stack limit = 0x%p)\n", 241+ printk(KERN_EMERG "Process %.*s (pid: %d:#%u, stack limit = 0x%p)\n",
301+ TASK_COMM_LEN, tsk->comm, task_pid_nr(tsk), tsk->xid, thread + 1); 242+ TASK_COMM_LEN, tsk->comm, task_pid_nr(tsk), tsk->xid, end_of_stack(tsk));
302 243
303 if (!user_mode(regs) || in_interrupt()) { 244 if (!user_mode(regs) || in_interrupt()) {
304 dump_mem(KERN_EMERG, "Stack: ", regs->ARM_sp, 245 dump_mem(KERN_EMERG, "Stack: ", regs->ARM_sp,
305diff -NurpP --minimal linux-3.4.57/arch/cris/Kconfig linux-3.4.57-vs2.3.3.9/arch/cris/Kconfig 246diff -NurpP --minimal linux-3.10.17/arch/cris/Kconfig linux-3.10.17-vs2.3.6.6/arch/cris/Kconfig
306--- linux-3.4.57/arch/cris/Kconfig 2012-03-19 18:46:39.000000000 +0000 247--- linux-3.10.17/arch/cris/Kconfig 2013-07-14 17:00:25.000000000 +0000
307+++ linux-3.4.57-vs2.3.3.9/arch/cris/Kconfig 2012-05-21 16:15:04.000000000 +0000 248+++ linux-3.10.17-vs2.3.6.6/arch/cris/Kconfig 2013-08-22 20:29:59.000000000 +0000
308@@ -675,6 +675,8 @@ source "drivers/staging/Kconfig" 249@@ -673,6 +673,8 @@ source "drivers/staging/Kconfig"
309 250
310 source "arch/cris/Kconfig.debug" 251 source "arch/cris/Kconfig.debug"
311 252
@@ -314,22 +255,10 @@ diff -NurpP --minimal linux-3.4.57/arch/cris/Kconfig linux-3.4.57-vs2.3.3.9/arch
314 source "security/Kconfig" 255 source "security/Kconfig"
315 256
316 source "crypto/Kconfig" 257 source "crypto/Kconfig"
317diff -NurpP --minimal linux-3.4.57/arch/frv/kernel/kernel_thread.S linux-3.4.57-vs2.3.3.9/arch/frv/kernel/kernel_thread.S 258diff -NurpP --minimal linux-3.10.17/arch/h8300/Kconfig linux-3.10.17-vs2.3.6.6/arch/h8300/Kconfig
318--- linux-3.4.57/arch/frv/kernel/kernel_thread.S 2008-12-24 23:26:37.000000000 +0000 259--- linux-3.10.17/arch/h8300/Kconfig 2013-07-14 17:00:25.000000000 +0000
319+++ linux-3.4.57-vs2.3.3.9/arch/frv/kernel/kernel_thread.S 2012-05-21 16:15:04.000000000 +0000 260+++ linux-3.10.17-vs2.3.6.6/arch/h8300/Kconfig 2013-08-22 20:29:59.000000000 +0000
320@@ -37,7 +37,7 @@ kernel_thread: 261@@ -218,6 +218,8 @@ source "fs/Kconfig"
321
322 # start by forking the current process, but with shared VM
323 setlos.p #__NR_clone,gr7 ; syscall number
324- ori gr10,#CLONE_VM,gr8 ; first syscall arg [clone_flags]
325+ ori gr10,#CLONE_KT,gr8 ; first syscall arg [clone_flags]
326 sethi.p #0xe4e4,gr9 ; second syscall arg [newsp]
327 setlo #0xe4e4,gr9
328 setlos.p #0,gr10 ; third syscall arg [parent_tidptr]
329diff -NurpP --minimal linux-3.4.57/arch/h8300/Kconfig linux-3.4.57-vs2.3.3.9/arch/h8300/Kconfig
330--- linux-3.4.57/arch/h8300/Kconfig 2012-03-19 18:46:39.000000000 +0000
331+++ linux-3.4.57-vs2.3.3.9/arch/h8300/Kconfig 2012-05-21 16:15:04.000000000 +0000
332@@ -214,6 +214,8 @@ source "fs/Kconfig"
333 262
334 source "arch/h8300/Kconfig.debug" 263 source "arch/h8300/Kconfig.debug"
335 264
@@ -338,10 +267,10 @@ diff -NurpP --minimal linux-3.4.57/arch/h8300/Kconfig linux-3.4.57-vs2.3.3.9/arc
338 source "security/Kconfig" 267 source "security/Kconfig"
339 268
340 source "crypto/Kconfig" 269 source "crypto/Kconfig"
341diff -NurpP --minimal linux-3.4.57/arch/ia64/Kconfig linux-3.4.57-vs2.3.3.9/arch/ia64/Kconfig 270diff -NurpP --minimal linux-3.10.17/arch/ia64/Kconfig linux-3.10.17-vs2.3.6.6/arch/ia64/Kconfig
342--- linux-3.4.57/arch/ia64/Kconfig 2012-03-19 18:46:39.000000000 +0000 271--- linux-3.10.17/arch/ia64/Kconfig 2013-07-14 17:00:25.000000000 +0000
343+++ linux-3.4.57-vs2.3.3.9/arch/ia64/Kconfig 2012-05-21 16:15:04.000000000 +0000 272+++ linux-3.10.17-vs2.3.6.6/arch/ia64/Kconfig 2013-08-22 20:29:59.000000000 +0000
344@@ -654,6 +654,8 @@ source "fs/Kconfig" 273@@ -643,6 +643,8 @@ source "fs/Kconfig"
345 274
346 source "arch/ia64/Kconfig.debug" 275 source "arch/ia64/Kconfig.debug"
347 276
@@ -350,10 +279,10 @@ diff -NurpP --minimal linux-3.4.57/arch/ia64/Kconfig linux-3.4.57-vs2.3.3.9/arch
350 source "security/Kconfig" 279 source "security/Kconfig"
351 280
352 source "crypto/Kconfig" 281 source "crypto/Kconfig"
353diff -NurpP --minimal linux-3.4.57/arch/ia64/kernel/entry.S linux-3.4.57-vs2.3.3.9/arch/ia64/kernel/entry.S 282diff -NurpP --minimal linux-3.10.17/arch/ia64/kernel/entry.S linux-3.10.17-vs2.3.6.6/arch/ia64/kernel/entry.S
354--- linux-3.4.57/arch/ia64/kernel/entry.S 2012-03-19 18:46:40.000000000 +0000 283--- linux-3.10.17/arch/ia64/kernel/entry.S 2013-05-31 13:44:38.000000000 +0000
355+++ linux-3.4.57-vs2.3.3.9/arch/ia64/kernel/entry.S 2012-05-21 16:15:04.000000000 +0000 284+++ linux-3.10.17-vs2.3.6.6/arch/ia64/kernel/entry.S 2013-08-22 20:29:59.000000000 +0000
356@@ -1714,7 +1714,7 @@ sys_call_table: 285@@ -1719,7 +1719,7 @@ sys_call_table:
357 data8 sys_mq_notify 286 data8 sys_mq_notify
358 data8 sys_mq_getsetattr 287 data8 sys_mq_getsetattr
359 data8 sys_kexec_load 288 data8 sys_kexec_load
@@ -362,23 +291,9 @@ diff -NurpP --minimal linux-3.4.57/arch/ia64/kernel/entry.S linux-3.4.57-vs2.3.3
362 data8 sys_waitid // 1270 291 data8 sys_waitid // 1270
363 data8 sys_add_key 292 data8 sys_add_key
364 data8 sys_request_key 293 data8 sys_request_key
365diff -NurpP --minimal linux-3.4.57/arch/ia64/kernel/process.c linux-3.4.57-vs2.3.3.9/arch/ia64/kernel/process.c 294diff -NurpP --minimal linux-3.10.17/arch/ia64/kernel/ptrace.c linux-3.10.17-vs2.3.6.6/arch/ia64/kernel/ptrace.c
366--- linux-3.4.57/arch/ia64/kernel/process.c 2013-08-13 14:12:49.000000000 +0000 295--- linux-3.10.17/arch/ia64/kernel/ptrace.c 2013-02-19 13:56:51.000000000 +0000
367+++ linux-3.4.57-vs2.3.3.9/arch/ia64/kernel/process.c 2012-10-22 13:09:53.000000000 +0000 296+++ linux-3.10.17-vs2.3.6.6/arch/ia64/kernel/ptrace.c 2013-08-22 20:29:59.000000000 +0000
368@@ -111,8 +111,8 @@ show_regs (struct pt_regs *regs)
369 unsigned long ip = regs->cr_iip + ia64_psr(regs)->ri;
370
371 print_modules();
372- printk("\nPid: %d, CPU %d, comm: %20s\n", task_pid_nr(current),
373- smp_processor_id(), current->comm);
374+ printk("\nPid: %d[#%u], CPU %d, comm: %20s\n", task_pid_nr(current),
375+ current->xid, smp_processor_id(), current->comm);
376 printk("psr : %016lx ifs : %016lx ip : [<%016lx>] %s (%s)\n",
377 regs->cr_ipsr, regs->cr_ifs, ip, print_tainted(),
378 init_utsname()->release);
379diff -NurpP --minimal linux-3.4.57/arch/ia64/kernel/ptrace.c linux-3.4.57-vs2.3.3.9/arch/ia64/kernel/ptrace.c
380--- linux-3.4.57/arch/ia64/kernel/ptrace.c 2012-05-21 16:06:26.000000000 +0000
381+++ linux-3.4.57-vs2.3.3.9/arch/ia64/kernel/ptrace.c 2012-05-21 16:15:04.000000000 +0000
382@@ -21,6 +21,7 @@ 297@@ -21,6 +21,7 @@
383 #include <linux/regset.h> 298 #include <linux/regset.h>
384 #include <linux/elf.h> 299 #include <linux/elf.h>
@@ -387,16 +302,16 @@ diff -NurpP --minimal linux-3.4.57/arch/ia64/kernel/ptrace.c linux-3.4.57-vs2.3.
387 302
388 #include <asm/pgtable.h> 303 #include <asm/pgtable.h>
389 #include <asm/processor.h> 304 #include <asm/processor.h>
390diff -NurpP --minimal linux-3.4.57/arch/ia64/kernel/traps.c linux-3.4.57-vs2.3.3.9/arch/ia64/kernel/traps.c 305diff -NurpP --minimal linux-3.10.17/arch/ia64/kernel/traps.c linux-3.10.17-vs2.3.6.6/arch/ia64/kernel/traps.c
391--- linux-3.4.57/arch/ia64/kernel/traps.c 2012-05-21 16:06:26.000000000 +0000 306--- linux-3.10.17/arch/ia64/kernel/traps.c 2013-05-31 13:44:38.000000000 +0000
392+++ linux-3.4.57-vs2.3.3.9/arch/ia64/kernel/traps.c 2012-05-21 16:15:04.000000000 +0000 307+++ linux-3.10.17-vs2.3.6.6/arch/ia64/kernel/traps.c 2013-08-22 20:29:59.000000000 +0000
393@@ -60,8 +60,9 @@ die (const char *str, struct pt_regs *re 308@@ -60,8 +60,9 @@ die (const char *str, struct pt_regs *re
394 put_cpu(); 309 put_cpu();
395 310
396 if (++die.lock_owner_depth < 3) { 311 if (++die.lock_owner_depth < 3) {
397- printk("%s[%d]: %s %ld [%d]\n", 312- printk("%s[%d]: %s %ld [%d]\n",
398- current->comm, task_pid_nr(current), str, err, ++die_counter); 313- current->comm, task_pid_nr(current), str, err, ++die_counter);
399+ printk("%s[%d[#%u]]: %s %ld [%d]\n", 314+ printk("%s[%d:#%u]: %s %ld [%d]\n",
400+ current->comm, task_pid_nr(current), current->xid, 315+ current->comm, task_pid_nr(current), current->xid,
401+ str, err, ++die_counter); 316+ str, err, ++die_counter);
402 if (notify_die(DIE_OOPS, str, regs, err, 255, SIGSEGV) 317 if (notify_die(DIE_OOPS, str, regs, err, 255, SIGSEGV)
@@ -408,31 +323,31 @@ diff -NurpP --minimal linux-3.4.57/arch/ia64/kernel/traps.c linux-3.4.57-vs2.3.3
408 printk(KERN_WARNING 323 printk(KERN_WARNING
409- "%s(%d): floating-point assist fault at ip %016lx, isr %016lx\n", 324- "%s(%d): floating-point assist fault at ip %016lx, isr %016lx\n",
410- current->comm, task_pid_nr(current), regs->cr_iip + ia64_psr(regs)->ri, isr); 325- current->comm, task_pid_nr(current), regs->cr_iip + ia64_psr(regs)->ri, isr);
411+ "%s(%d[#%u]): floating-point assist fault at ip %016lx, isr %016lx\n", 326+ "%s(%d:#%u): floating-point assist fault at ip %016lx, isr %016lx\n",
412+ current->comm, task_pid_nr(current), current->xid, 327+ current->comm, task_pid_nr(current), current->xid,
413+ regs->cr_iip + ia64_psr(regs)->ri, isr); 328+ regs->cr_iip + ia64_psr(regs)->ri, isr);
414 } 329 }
415 } 330 }
416 } 331 }
417diff -NurpP --minimal linux-3.4.57/arch/m32r/kernel/traps.c linux-3.4.57-vs2.3.3.9/arch/m32r/kernel/traps.c 332diff -NurpP --minimal linux-3.10.17/arch/m32r/kernel/traps.c linux-3.10.17-vs2.3.6.6/arch/m32r/kernel/traps.c
418--- linux-3.4.57/arch/m32r/kernel/traps.c 2012-05-21 16:06:26.000000000 +0000 333--- linux-3.10.17/arch/m32r/kernel/traps.c 2013-07-14 17:00:26.000000000 +0000
419+++ linux-3.4.57-vs2.3.3.9/arch/m32r/kernel/traps.c 2012-05-21 16:15:04.000000000 +0000 334+++ linux-3.10.17-vs2.3.6.6/arch/m32r/kernel/traps.c 2013-08-22 20:29:59.000000000 +0000
420@@ -195,8 +195,9 @@ static void show_registers(struct pt_reg 335@@ -184,8 +184,9 @@ static void show_registers(struct pt_reg
421 } else { 336 } else {
422 printk("SPI: %08lx\n", sp); 337 printk("SPI: %08lx\n", sp);
423 } 338 }
424- printk("Process %s (pid: %d, process nr: %d, stackpage=%08lx)", 339- printk("Process %s (pid: %d, process nr: %d, stackpage=%08lx)",
425- current->comm, task_pid_nr(current), 0xffff & i, 4096+(unsigned long)current); 340- current->comm, task_pid_nr(current), 0xffff & i, 4096+(unsigned long)current);
426+ printk("Process %s (pid: %d[#%u], process nr: %d, stackpage=%08lx)", 341+ printk("Process %s (pid: %d:#%u, process nr: %d, stackpage=%08lx)",
427+ current->comm, task_pid_nr(current), current->xid, 342+ current->comm, task_pid_nr(current), current->xid,
428+ 0xffff & i, 4096+(unsigned long)current); 343+ 0xffff & i, 4096+(unsigned long)current);
429 344
430 /* 345 /*
431 * When in-kernel, we also print out the stack and code at the 346 * When in-kernel, we also print out the stack and code at the
432diff -NurpP --minimal linux-3.4.57/arch/m68k/Kconfig linux-3.4.57-vs2.3.3.9/arch/m68k/Kconfig 347diff -NurpP --minimal linux-3.10.17/arch/m68k/Kconfig linux-3.10.17-vs2.3.6.6/arch/m68k/Kconfig
433--- linux-3.4.57/arch/m68k/Kconfig 2012-05-21 16:06:26.000000000 +0000 348--- linux-3.10.17/arch/m68k/Kconfig 2013-07-14 17:00:26.000000000 +0000
434+++ linux-3.4.57-vs2.3.3.9/arch/m68k/Kconfig 2012-05-21 16:15:04.000000000 +0000 349+++ linux-3.10.17-vs2.3.6.6/arch/m68k/Kconfig 2013-08-22 20:29:59.000000000 +0000
435@@ -146,6 +146,8 @@ source "fs/Kconfig" 350@@ -134,6 +134,8 @@ source "fs/Kconfig"
436 351
437 source "arch/m68k/Kconfig.debug" 352 source "arch/m68k/Kconfig.debug"
438 353
@@ -441,10 +356,10 @@ diff -NurpP --minimal linux-3.4.57/arch/m68k/Kconfig linux-3.4.57-vs2.3.3.9/arch
441 source "security/Kconfig" 356 source "security/Kconfig"
442 357
443 source "crypto/Kconfig" 358 source "crypto/Kconfig"
444diff -NurpP --minimal linux-3.4.57/arch/mips/Kconfig linux-3.4.57-vs2.3.3.9/arch/mips/Kconfig 359diff -NurpP --minimal linux-3.10.17/arch/mips/Kconfig linux-3.10.17-vs2.3.6.6/arch/mips/Kconfig
445--- linux-3.4.57/arch/mips/Kconfig 2012-05-21 16:06:27.000000000 +0000 360--- linux-3.10.17/arch/mips/Kconfig 2013-10-25 15:17:24.000000000 +0000
446+++ linux-3.4.57-vs2.3.3.9/arch/mips/Kconfig 2012-05-21 16:15:04.000000000 +0000 361+++ linux-3.10.17-vs2.3.6.6/arch/mips/Kconfig 2013-08-22 20:29:59.000000000 +0000
447@@ -2516,6 +2516,8 @@ source "fs/Kconfig" 362@@ -2583,6 +2583,8 @@ source "fs/Kconfig"
448 363
449 source "arch/mips/Kconfig.debug" 364 source "arch/mips/Kconfig.debug"
450 365
@@ -453,9 +368,9 @@ diff -NurpP --minimal linux-3.4.57/arch/mips/Kconfig linux-3.4.57-vs2.3.3.9/arch
453 source "security/Kconfig" 368 source "security/Kconfig"
454 369
455 source "crypto/Kconfig" 370 source "crypto/Kconfig"
456diff -NurpP --minimal linux-3.4.57/arch/mips/kernel/ptrace.c linux-3.4.57-vs2.3.3.9/arch/mips/kernel/ptrace.c 371diff -NurpP --minimal linux-3.10.17/arch/mips/kernel/ptrace.c linux-3.10.17-vs2.3.6.6/arch/mips/kernel/ptrace.c
457--- linux-3.4.57/arch/mips/kernel/ptrace.c 2012-05-21 16:06:27.000000000 +0000 372--- linux-3.10.17/arch/mips/kernel/ptrace.c 2013-05-31 13:44:42.000000000 +0000
458+++ linux-3.4.57-vs2.3.3.9/arch/mips/kernel/ptrace.c 2012-05-21 16:15:04.000000000 +0000 373+++ linux-3.10.17-vs2.3.6.6/arch/mips/kernel/ptrace.c 2013-08-22 20:29:59.000000000 +0000
459@@ -25,6 +25,7 @@ 374@@ -25,6 +25,7 @@
460 #include <linux/security.h> 375 #include <linux/security.h>
461 #include <linux/audit.h> 376 #include <linux/audit.h>
@@ -474,10 +389,10 @@ diff -NurpP --minimal linux-3.4.57/arch/mips/kernel/ptrace.c linux-3.4.57-vs2.3.
474 switch (request) { 389 switch (request) {
475 /* when I and D space are separate, these will need to be fixed. */ 390 /* when I and D space are separate, these will need to be fixed. */
476 case PTRACE_PEEKTEXT: /* read word at location addr. */ 391 case PTRACE_PEEKTEXT: /* read word at location addr. */
477diff -NurpP --minimal linux-3.4.57/arch/mips/kernel/scall32-o32.S linux-3.4.57-vs2.3.3.9/arch/mips/kernel/scall32-o32.S 392diff -NurpP --minimal linux-3.10.17/arch/mips/kernel/scall32-o32.S linux-3.10.17-vs2.3.6.6/arch/mips/kernel/scall32-o32.S
478--- linux-3.4.57/arch/mips/kernel/scall32-o32.S 2012-01-09 15:14:05.000000000 +0000 393--- linux-3.10.17/arch/mips/kernel/scall32-o32.S 2013-07-14 17:00:28.000000000 +0000
479+++ linux-3.4.57-vs2.3.3.9/arch/mips/kernel/scall32-o32.S 2012-05-21 16:15:04.000000000 +0000 394+++ linux-3.10.17-vs2.3.6.6/arch/mips/kernel/scall32-o32.S 2013-08-22 20:29:59.000000000 +0000
480@@ -523,7 +523,7 @@ einval: li v0, -ENOSYS 395@@ -521,7 +521,7 @@ einval: li v0, -ENOSYS
481 sys sys_mq_timedreceive 5 396 sys sys_mq_timedreceive 5
482 sys sys_mq_notify 2 /* 4275 */ 397 sys sys_mq_notify 2 /* 4275 */
483 sys sys_mq_getsetattr 3 398 sys sys_mq_getsetattr 3
@@ -486,10 +401,10 @@ diff -NurpP --minimal linux-3.4.57/arch/mips/kernel/scall32-o32.S linux-3.4.57-v
486 sys sys_waitid 5 401 sys sys_waitid 5
487 sys sys_ni_syscall 0 /* available, was setaltroot */ 402 sys sys_ni_syscall 0 /* available, was setaltroot */
488 sys sys_add_key 5 /* 4280 */ 403 sys sys_add_key 5 /* 4280 */
489diff -NurpP --minimal linux-3.4.57/arch/mips/kernel/scall64-64.S linux-3.4.57-vs2.3.3.9/arch/mips/kernel/scall64-64.S 404diff -NurpP --minimal linux-3.10.17/arch/mips/kernel/scall64-64.S linux-3.10.17-vs2.3.6.6/arch/mips/kernel/scall64-64.S
490--- linux-3.4.57/arch/mips/kernel/scall64-64.S 2012-01-09 15:14:05.000000000 +0000 405--- linux-3.10.17/arch/mips/kernel/scall64-64.S 2013-07-14 17:00:28.000000000 +0000
491+++ linux-3.4.57-vs2.3.3.9/arch/mips/kernel/scall64-64.S 2012-05-21 16:15:04.000000000 +0000 406+++ linux-3.10.17-vs2.3.6.6/arch/mips/kernel/scall64-64.S 2013-08-22 20:29:59.000000000 +0000
492@@ -362,7 +362,7 @@ sys_call_table: 407@@ -351,7 +351,7 @@ sys_call_table:
493 PTR sys_mq_timedreceive 408 PTR sys_mq_timedreceive
494 PTR sys_mq_notify 409 PTR sys_mq_notify
495 PTR sys_mq_getsetattr /* 5235 */ 410 PTR sys_mq_getsetattr /* 5235 */
@@ -498,10 +413,10 @@ diff -NurpP --minimal linux-3.4.57/arch/mips/kernel/scall64-64.S linux-3.4.57-vs
498 PTR sys_waitid 413 PTR sys_waitid
499 PTR sys_ni_syscall /* available, was setaltroot */ 414 PTR sys_ni_syscall /* available, was setaltroot */
500 PTR sys_add_key 415 PTR sys_add_key
501diff -NurpP --minimal linux-3.4.57/arch/mips/kernel/scall64-n32.S linux-3.4.57-vs2.3.3.9/arch/mips/kernel/scall64-n32.S 416diff -NurpP --minimal linux-3.10.17/arch/mips/kernel/scall64-n32.S linux-3.10.17-vs2.3.6.6/arch/mips/kernel/scall64-n32.S
502--- linux-3.4.57/arch/mips/kernel/scall64-n32.S 2012-01-09 15:14:05.000000000 +0000 417--- linux-3.10.17/arch/mips/kernel/scall64-n32.S 2013-07-14 17:00:28.000000000 +0000
503+++ linux-3.4.57-vs2.3.3.9/arch/mips/kernel/scall64-n32.S 2012-05-21 16:15:04.000000000 +0000 418+++ linux-3.10.17-vs2.3.6.6/arch/mips/kernel/scall64-n32.S 2013-08-22 20:29:59.000000000 +0000
504@@ -361,7 +361,7 @@ EXPORT(sysn32_call_table) 419@@ -344,7 +344,7 @@ EXPORT(sysn32_call_table)
505 PTR compat_sys_mq_timedreceive 420 PTR compat_sys_mq_timedreceive
506 PTR compat_sys_mq_notify 421 PTR compat_sys_mq_notify
507 PTR compat_sys_mq_getsetattr 422 PTR compat_sys_mq_getsetattr
@@ -510,22 +425,22 @@ diff -NurpP --minimal linux-3.4.57/arch/mips/kernel/scall64-n32.S linux-3.4.57-v
510 PTR compat_sys_waitid 425 PTR compat_sys_waitid
511 PTR sys_ni_syscall /* available, was setaltroot */ 426 PTR sys_ni_syscall /* available, was setaltroot */
512 PTR sys_add_key 427 PTR sys_add_key
513diff -NurpP --minimal linux-3.4.57/arch/mips/kernel/scall64-o32.S linux-3.4.57-vs2.3.3.9/arch/mips/kernel/scall64-o32.S 428diff -NurpP --minimal linux-3.10.17/arch/mips/kernel/scall64-o32.S linux-3.10.17-vs2.3.6.6/arch/mips/kernel/scall64-o32.S
514--- linux-3.4.57/arch/mips/kernel/scall64-o32.S 2012-01-09 15:14:05.000000000 +0000 429--- linux-3.10.17/arch/mips/kernel/scall64-o32.S 2013-07-14 17:00:28.000000000 +0000
515+++ linux-3.4.57-vs2.3.3.9/arch/mips/kernel/scall64-o32.S 2012-05-21 16:15:04.000000000 +0000 430+++ linux-3.10.17-vs2.3.6.6/arch/mips/kernel/scall64-o32.S 2013-08-22 20:29:59.000000000 +0000
516@@ -480,7 +480,7 @@ sys_call_table: 431@@ -469,7 +469,7 @@ sys_call_table:
517 PTR compat_sys_mq_timedreceive 432 PTR compat_sys_mq_timedreceive
518 PTR compat_sys_mq_notify /* 4275 */ 433 PTR compat_sys_mq_notify /* 4275 */
519 PTR compat_sys_mq_getsetattr 434 PTR compat_sys_mq_getsetattr
520- PTR sys_ni_syscall /* sys_vserver */ 435- PTR sys_ni_syscall /* sys_vserver */
521+ PTR sys32_vserver 436+ PTR sys32_vserver
522 PTR sys_32_waitid 437 PTR compat_sys_waitid
523 PTR sys_ni_syscall /* available, was setaltroot */ 438 PTR sys_ni_syscall /* available, was setaltroot */
524 PTR sys_add_key /* 4280 */ 439 PTR sys_add_key /* 4280 */
525diff -NurpP --minimal linux-3.4.57/arch/mips/kernel/traps.c linux-3.4.57-vs2.3.3.9/arch/mips/kernel/traps.c 440diff -NurpP --minimal linux-3.10.17/arch/mips/kernel/traps.c linux-3.10.17-vs2.3.6.6/arch/mips/kernel/traps.c
526--- linux-3.4.57/arch/mips/kernel/traps.c 2012-05-21 16:06:27.000000000 +0000 441--- linux-3.10.17/arch/mips/kernel/traps.c 2013-07-14 17:00:28.000000000 +0000
527+++ linux-3.4.57-vs2.3.3.9/arch/mips/kernel/traps.c 2012-05-21 16:15:04.000000000 +0000 442+++ linux-3.10.17-vs2.3.6.6/arch/mips/kernel/traps.c 2013-08-22 20:29:59.000000000 +0000
528@@ -343,9 +343,10 @@ void show_registers(struct pt_regs *regs 443@@ -331,9 +331,10 @@ void show_registers(struct pt_regs *regs
529 444
530 __show_regs(regs); 445 __show_regs(regs);
531 print_modules(); 446 print_modules();
@@ -539,10 +454,10 @@ diff -NurpP --minimal linux-3.4.57/arch/mips/kernel/traps.c linux-3.4.57-vs2.3.3
539 if (cpu_has_userlocal) { 454 if (cpu_has_userlocal) {
540 unsigned long tls; 455 unsigned long tls;
541 456
542diff -NurpP --minimal linux-3.4.57/arch/parisc/Kconfig linux-3.4.57-vs2.3.3.9/arch/parisc/Kconfig 457diff -NurpP --minimal linux-3.10.17/arch/parisc/Kconfig linux-3.10.17-vs2.3.6.6/arch/parisc/Kconfig
543--- linux-3.4.57/arch/parisc/Kconfig 2012-03-19 18:46:44.000000000 +0000 458--- linux-3.10.17/arch/parisc/Kconfig 2013-07-14 17:00:29.000000000 +0000
544+++ linux-3.4.57-vs2.3.3.9/arch/parisc/Kconfig 2012-05-21 16:15:04.000000000 +0000 459+++ linux-3.10.17-vs2.3.6.6/arch/parisc/Kconfig 2013-08-22 20:29:59.000000000 +0000
545@@ -279,6 +279,8 @@ source "fs/Kconfig" 460@@ -318,6 +318,8 @@ source "fs/Kconfig"
546 461
547 source "arch/parisc/Kconfig.debug" 462 source "arch/parisc/Kconfig.debug"
548 463
@@ -551,10 +466,10 @@ diff -NurpP --minimal linux-3.4.57/arch/parisc/Kconfig linux-3.4.57-vs2.3.3.9/ar
551 source "security/Kconfig" 466 source "security/Kconfig"
552 467
553 source "crypto/Kconfig" 468 source "crypto/Kconfig"
554diff -NurpP --minimal linux-3.4.57/arch/parisc/kernel/syscall_table.S linux-3.4.57-vs2.3.3.9/arch/parisc/kernel/syscall_table.S 469diff -NurpP --minimal linux-3.10.17/arch/parisc/kernel/syscall_table.S linux-3.10.17-vs2.3.6.6/arch/parisc/kernel/syscall_table.S
555--- linux-3.4.57/arch/parisc/kernel/syscall_table.S 2011-10-24 16:45:00.000000000 +0000 470--- linux-3.10.17/arch/parisc/kernel/syscall_table.S 2013-07-14 17:00:31.000000000 +0000
556+++ linux-3.4.57-vs2.3.3.9/arch/parisc/kernel/syscall_table.S 2012-05-21 16:15:04.000000000 +0000 471+++ linux-3.10.17-vs2.3.6.6/arch/parisc/kernel/syscall_table.S 2013-08-22 20:29:59.000000000 +0000
557@@ -361,7 +361,7 @@ 472@@ -358,7 +358,7 @@
558 ENTRY_COMP(mbind) /* 260 */ 473 ENTRY_COMP(mbind) /* 260 */
559 ENTRY_COMP(get_mempolicy) 474 ENTRY_COMP(get_mempolicy)
560 ENTRY_COMP(set_mempolicy) 475 ENTRY_COMP(set_mempolicy)
@@ -563,10 +478,10 @@ diff -NurpP --minimal linux-3.4.57/arch/parisc/kernel/syscall_table.S linux-3.4.
563 ENTRY_SAME(add_key) 478 ENTRY_SAME(add_key)
564 ENTRY_SAME(request_key) /* 265 */ 479 ENTRY_SAME(request_key) /* 265 */
565 ENTRY_SAME(keyctl) 480 ENTRY_SAME(keyctl)
566diff -NurpP --minimal linux-3.4.57/arch/parisc/kernel/traps.c linux-3.4.57-vs2.3.3.9/arch/parisc/kernel/traps.c 481diff -NurpP --minimal linux-3.10.17/arch/parisc/kernel/traps.c linux-3.10.17-vs2.3.6.6/arch/parisc/kernel/traps.c
567--- linux-3.4.57/arch/parisc/kernel/traps.c 2012-05-21 16:06:28.000000000 +0000 482--- linux-3.10.17/arch/parisc/kernel/traps.c 2013-10-25 15:17:24.000000000 +0000
568+++ linux-3.4.57-vs2.3.3.9/arch/parisc/kernel/traps.c 2012-05-21 16:15:04.000000000 +0000 483+++ linux-3.10.17-vs2.3.6.6/arch/parisc/kernel/traps.c 2013-10-26 18:03:16.000000000 +0000
569@@ -235,8 +235,9 @@ void die_if_kernel(char *str, struct pt_ 484@@ -229,8 +229,9 @@ void die_if_kernel(char *str, struct pt_
570 if (err == 0) 485 if (err == 0)
571 return; /* STFU */ 486 return; /* STFU */
572 487
@@ -578,7 +493,7 @@ diff -NurpP --minimal linux-3.4.57/arch/parisc/kernel/traps.c linux-3.4.57-vs2.3
578 #ifdef PRINT_USER_FAULTS 493 #ifdef PRINT_USER_FAULTS
579 /* XXX for debugging only */ 494 /* XXX for debugging only */
580 show_regs(regs); 495 show_regs(regs);
581@@ -269,8 +270,8 @@ void die_if_kernel(char *str, struct pt_ 496@@ -263,8 +264,8 @@ void die_if_kernel(char *str, struct pt_
582 pdc_console_restart(); 497 pdc_console_restart();
583 498
584 if (err) 499 if (err)
@@ -589,10 +504,10 @@ diff -NurpP --minimal linux-3.4.57/arch/parisc/kernel/traps.c linux-3.4.57-vs2.3
589 504
590 /* Wot's wrong wif bein' racy? */ 505 /* Wot's wrong wif bein' racy? */
591 if (current->thread.flags & PARISC_KERNEL_DEATH) { 506 if (current->thread.flags & PARISC_KERNEL_DEATH) {
592diff -NurpP --minimal linux-3.4.57/arch/parisc/mm/fault.c linux-3.4.57-vs2.3.3.9/arch/parisc/mm/fault.c 507diff -NurpP --minimal linux-3.10.17/arch/parisc/mm/fault.c linux-3.10.17-vs2.3.6.6/arch/parisc/mm/fault.c
593--- linux-3.4.57/arch/parisc/mm/fault.c 2010-08-02 14:52:06.000000000 +0000 508--- linux-3.10.17/arch/parisc/mm/fault.c 2013-05-31 13:44:44.000000000 +0000
594+++ linux-3.4.57-vs2.3.3.9/arch/parisc/mm/fault.c 2012-05-21 16:15:04.000000000 +0000 509+++ linux-3.10.17-vs2.3.6.6/arch/parisc/mm/fault.c 2013-08-22 20:29:59.000000000 +0000
595@@ -237,8 +237,9 @@ bad_area: 510@@ -257,8 +257,9 @@ bad_area:
596 511
597 #ifdef PRINT_USER_FAULTS 512 #ifdef PRINT_USER_FAULTS
598 printk(KERN_DEBUG "\n"); 513 printk(KERN_DEBUG "\n");
@@ -604,10 +519,10 @@ diff -NurpP --minimal linux-3.4.57/arch/parisc/mm/fault.c linux-3.4.57-vs2.3.3.9
604 if (vma) { 519 if (vma) {
605 printk(KERN_DEBUG "vm_start = 0x%08lx, vm_end = 0x%08lx\n", 520 printk(KERN_DEBUG "vm_start = 0x%08lx, vm_end = 0x%08lx\n",
606 vma->vm_start, vma->vm_end); 521 vma->vm_start, vma->vm_end);
607diff -NurpP --minimal linux-3.4.57/arch/powerpc/Kconfig linux-3.4.57-vs2.3.3.9/arch/powerpc/Kconfig 522diff -NurpP --minimal linux-3.10.17/arch/powerpc/Kconfig linux-3.10.17-vs2.3.6.6/arch/powerpc/Kconfig
608--- linux-3.4.57/arch/powerpc/Kconfig 2012-05-21 16:06:28.000000000 +0000 523--- linux-3.10.17/arch/powerpc/Kconfig 2013-10-25 15:17:24.000000000 +0000
609+++ linux-3.4.57-vs2.3.3.9/arch/powerpc/Kconfig 2012-05-21 16:15:04.000000000 +0000 524+++ linux-3.10.17-vs2.3.6.6/arch/powerpc/Kconfig 2013-10-09 17:37:21.000000000 +0000
610@@ -1002,6 +1002,8 @@ source "lib/Kconfig" 525@@ -1010,6 +1010,8 @@ source "lib/Kconfig"
611 526
612 source "arch/powerpc/Kconfig.debug" 527 source "arch/powerpc/Kconfig.debug"
613 528
@@ -616,9 +531,9 @@ diff -NurpP --minimal linux-3.4.57/arch/powerpc/Kconfig linux-3.4.57-vs2.3.3.9/a
616 source "security/Kconfig" 531 source "security/Kconfig"
617 532
618 config KEYS_COMPAT 533 config KEYS_COMPAT
619diff -NurpP --minimal linux-3.4.57/arch/powerpc/include/asm/unistd.h linux-3.4.57-vs2.3.3.9/arch/powerpc/include/asm/unistd.h 534diff -NurpP --minimal linux-3.10.17/arch/powerpc/include/uapi/asm/unistd.h linux-3.10.17-vs2.3.6.6/arch/powerpc/include/uapi/asm/unistd.h
620--- linux-3.4.57/arch/powerpc/include/asm/unistd.h 2012-01-09 15:14:05.000000000 +0000 535--- linux-3.10.17/arch/powerpc/include/uapi/asm/unistd.h 2013-05-31 13:44:44.000000000 +0000
621+++ linux-3.4.57-vs2.3.3.9/arch/powerpc/include/asm/unistd.h 2012-05-21 16:15:04.000000000 +0000 536+++ linux-3.10.17-vs2.3.6.6/arch/powerpc/include/uapi/asm/unistd.h 2013-08-22 20:29:59.000000000 +0000
622@@ -275,7 +275,7 @@ 537@@ -275,7 +275,7 @@
623 #endif 538 #endif
624 #define __NR_rtas 255 539 #define __NR_rtas 255
@@ -628,40 +543,25 @@ diff -NurpP --minimal linux-3.4.57/arch/powerpc/include/asm/unistd.h linux-3.4.5
628 #define __NR_migrate_pages 258 543 #define __NR_migrate_pages 258
629 #define __NR_mbind 259 544 #define __NR_mbind 259
630 #define __NR_get_mempolicy 260 545 #define __NR_get_mempolicy 260
631diff -NurpP --minimal linux-3.4.57/arch/powerpc/kernel/process.c linux-3.4.57-vs2.3.3.9/arch/powerpc/kernel/process.c 546diff -NurpP --minimal linux-3.10.17/arch/powerpc/kernel/traps.c linux-3.10.17-vs2.3.6.6/arch/powerpc/kernel/traps.c
632--- linux-3.4.57/arch/powerpc/kernel/process.c 2013-08-13 14:12:50.000000000 +0000 547--- linux-3.10.17/arch/powerpc/kernel/traps.c 2013-10-25 15:17:24.000000000 +0000
633+++ linux-3.4.57-vs2.3.3.9/arch/powerpc/kernel/process.c 2013-07-14 13:38:26.000000000 +0000 548+++ linux-3.10.17-vs2.3.6.6/arch/powerpc/kernel/traps.c 2013-08-22 20:29:59.000000000 +0000
634@@ -661,8 +661,9 @@ void show_regs(struct pt_regs * regs) 549@@ -1231,8 +1231,9 @@ void nonrecoverable_exception(struct pt_
635 #else
636 printk("DAR: "REG", DSISR: %08lx\n", regs->dar, regs->dsisr);
637 #endif
638- printk("TASK = %p[%d] '%s' THREAD: %p",
639- current, task_pid_nr(current), current->comm, task_thread_info(current));
640+ printk("TASK = %p[%d,#%u] '%s' THREAD: %p",
641+ current, task_pid_nr(current), current->xid,
642+ current->comm, task_thread_info(current));
643
644 #ifdef CONFIG_SMP
645 printk(" CPU: %d", raw_smp_processor_id());
646diff -NurpP --minimal linux-3.4.57/arch/powerpc/kernel/traps.c linux-3.4.57-vs2.3.3.9/arch/powerpc/kernel/traps.c
647--- linux-3.4.57/arch/powerpc/kernel/traps.c 2013-08-13 14:12:50.000000000 +0000
648+++ linux-3.4.57-vs2.3.3.9/arch/powerpc/kernel/traps.c 2013-07-14 13:38:26.000000000 +0000
649@@ -1125,8 +1125,9 @@ void nonrecoverable_exception(struct pt_
650 550
651 void trace_syscall(struct pt_regs *regs) 551 void trace_syscall(struct pt_regs *regs)
652 { 552 {
653- printk("Task: %p(%d), PC: %08lX/%08lX, Syscall: %3ld, Result: %s%ld %s\n", 553- printk("Task: %p(%d), PC: %08lX/%08lX, Syscall: %3ld, Result: %s%ld %s\n",
654- current, task_pid_nr(current), regs->nip, regs->link, regs->gpr[0], 554- current, task_pid_nr(current), regs->nip, regs->link, regs->gpr[0],
655+ printk("Task: %p(%d[#%u]), PC: %08lX/%08lX, Syscall: %3ld, Result: %s%ld %s\n", 555+ printk("Task: %p(%d:#%u), PC: %08lX/%08lX, Syscall: %3ld, Result: %s%ld %s\n",
656+ current, task_pid_nr(current), current->xid, 556+ current, task_pid_nr(current), current->xid,
657+ regs->nip, regs->link, regs->gpr[0], 557+ regs->nip, regs->link, regs->gpr[0],
658 regs->ccr&0x10000000?"Error=":"", regs->gpr[3], print_tainted()); 558 regs->ccr&0x10000000?"Error=":"", regs->gpr[3], print_tainted());
659 } 559 }
660 560
661diff -NurpP --minimal linux-3.4.57/arch/s390/Kconfig linux-3.4.57-vs2.3.3.9/arch/s390/Kconfig 561diff -NurpP --minimal linux-3.10.17/arch/s390/Kconfig linux-3.10.17-vs2.3.6.6/arch/s390/Kconfig
662--- linux-3.4.57/arch/s390/Kconfig 2012-05-21 16:06:32.000000000 +0000 562--- linux-3.10.17/arch/s390/Kconfig 2013-10-25 15:17:25.000000000 +0000
663+++ linux-3.4.57-vs2.3.3.9/arch/s390/Kconfig 2012-05-21 16:15:04.000000000 +0000 563+++ linux-3.10.17-vs2.3.6.6/arch/s390/Kconfig 2013-08-22 20:29:59.000000000 +0000
664@@ -639,6 +639,8 @@ source "fs/Kconfig" 564@@ -579,6 +579,8 @@ source "fs/Kconfig"
665 565
666 source "arch/s390/Kconfig.debug" 566 source "arch/s390/Kconfig.debug"
667 567
@@ -670,9 +570,9 @@ diff -NurpP --minimal linux-3.4.57/arch/s390/Kconfig linux-3.4.57-vs2.3.3.9/arch
670 source "security/Kconfig" 570 source "security/Kconfig"
671 571
672 source "crypto/Kconfig" 572 source "crypto/Kconfig"
673diff -NurpP --minimal linux-3.4.57/arch/s390/include/asm/tlb.h linux-3.4.57-vs2.3.3.9/arch/s390/include/asm/tlb.h 573diff -NurpP --minimal linux-3.10.17/arch/s390/include/asm/tlb.h linux-3.10.17-vs2.3.6.6/arch/s390/include/asm/tlb.h
674--- linux-3.4.57/arch/s390/include/asm/tlb.h 2012-05-21 16:06:32.000000000 +0000 574--- linux-3.10.17/arch/s390/include/asm/tlb.h 2013-10-25 15:17:25.000000000 +0000
675+++ linux-3.4.57-vs2.3.3.9/arch/s390/include/asm/tlb.h 2012-05-21 16:15:04.000000000 +0000 575+++ linux-3.10.17-vs2.3.6.6/arch/s390/include/asm/tlb.h 2013-08-22 20:29:59.000000000 +0000
676@@ -24,6 +24,7 @@ 576@@ -24,6 +24,7 @@
677 #include <linux/mm.h> 577 #include <linux/mm.h>
678 #include <linux/pagemap.h> 578 #include <linux/pagemap.h>
@@ -681,10 +581,10 @@ diff -NurpP --minimal linux-3.4.57/arch/s390/include/asm/tlb.h linux-3.4.57-vs2.
681 #include <asm/processor.h> 581 #include <asm/processor.h>
682 #include <asm/pgalloc.h> 582 #include <asm/pgalloc.h>
683 #include <asm/tlbflush.h> 583 #include <asm/tlbflush.h>
684diff -NurpP --minimal linux-3.4.57/arch/s390/include/asm/unistd.h linux-3.4.57-vs2.3.3.9/arch/s390/include/asm/unistd.h 584diff -NurpP --minimal linux-3.10.17/arch/s390/include/uapi/asm/unistd.h linux-3.10.17-vs2.3.6.6/arch/s390/include/uapi/asm/unistd.h
685--- linux-3.4.57/arch/s390/include/asm/unistd.h 2012-03-19 18:46:48.000000000 +0000 585--- linux-3.10.17/arch/s390/include/uapi/asm/unistd.h 2013-02-19 13:57:16.000000000 +0000
686+++ linux-3.4.57-vs2.3.3.9/arch/s390/include/asm/unistd.h 2012-05-21 16:15:04.000000000 +0000 586+++ linux-3.10.17-vs2.3.6.6/arch/s390/include/uapi/asm/unistd.h 2013-08-22 20:29:59.000000000 +0000
687@@ -202,7 +202,7 @@ 587@@ -200,7 +200,7 @@
688 #define __NR_clock_gettime (__NR_timer_create+6) 588 #define __NR_clock_gettime (__NR_timer_create+6)
689 #define __NR_clock_getres (__NR_timer_create+7) 589 #define __NR_clock_getres (__NR_timer_create+7)
690 #define __NR_clock_nanosleep (__NR_timer_create+8) 590 #define __NR_clock_nanosleep (__NR_timer_create+8)
@@ -693,9 +593,9 @@ diff -NurpP --minimal linux-3.4.57/arch/s390/include/asm/unistd.h linux-3.4.57-v
693 #define __NR_statfs64 265 593 #define __NR_statfs64 265
694 #define __NR_fstatfs64 266 594 #define __NR_fstatfs64 266
695 #define __NR_remap_file_pages 267 595 #define __NR_remap_file_pages 267
696diff -NurpP --minimal linux-3.4.57/arch/s390/kernel/ptrace.c linux-3.4.57-vs2.3.3.9/arch/s390/kernel/ptrace.c 596diff -NurpP --minimal linux-3.10.17/arch/s390/kernel/ptrace.c linux-3.10.17-vs2.3.6.6/arch/s390/kernel/ptrace.c
697--- linux-3.4.57/arch/s390/kernel/ptrace.c 2012-05-21 16:06:32.000000000 +0000 597--- linux-3.10.17/arch/s390/kernel/ptrace.c 2012-12-11 03:30:57.000000000 +0000
698+++ linux-3.4.57-vs2.3.3.9/arch/s390/kernel/ptrace.c 2012-05-21 16:15:04.000000000 +0000 598+++ linux-3.10.17-vs2.3.6.6/arch/s390/kernel/ptrace.c 2013-08-22 20:29:59.000000000 +0000
699@@ -21,6 +21,7 @@ 599@@ -21,6 +21,7 @@
700 #include <linux/tracehook.h> 600 #include <linux/tracehook.h>
701 #include <linux/seccomp.h> 601 #include <linux/seccomp.h>
@@ -704,9 +604,9 @@ diff -NurpP --minimal linux-3.4.57/arch/s390/kernel/ptrace.c linux-3.4.57-vs2.3.
704 #include <trace/syscall.h> 604 #include <trace/syscall.h>
705 #include <asm/segment.h> 605 #include <asm/segment.h>
706 #include <asm/page.h> 606 #include <asm/page.h>
707diff -NurpP --minimal linux-3.4.57/arch/s390/kernel/syscalls.S linux-3.4.57-vs2.3.3.9/arch/s390/kernel/syscalls.S 607diff -NurpP --minimal linux-3.10.17/arch/s390/kernel/syscalls.S linux-3.10.17-vs2.3.6.6/arch/s390/kernel/syscalls.S
708--- linux-3.4.57/arch/s390/kernel/syscalls.S 2012-01-09 15:14:06.000000000 +0000 608--- linux-3.10.17/arch/s390/kernel/syscalls.S 2013-07-14 17:00:34.000000000 +0000
709+++ linux-3.4.57-vs2.3.3.9/arch/s390/kernel/syscalls.S 2012-05-21 16:15:04.000000000 +0000 609+++ linux-3.10.17-vs2.3.6.6/arch/s390/kernel/syscalls.S 2013-08-22 20:29:59.000000000 +0000
710@@ -271,7 +271,7 @@ SYSCALL(sys_clock_settime,sys_clock_sett 610@@ -271,7 +271,7 @@ SYSCALL(sys_clock_settime,sys_clock_sett
711 SYSCALL(sys_clock_gettime,sys_clock_gettime,sys32_clock_gettime_wrapper) /* 260 */ 611 SYSCALL(sys_clock_gettime,sys_clock_gettime,sys32_clock_gettime_wrapper) /* 260 */
712 SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper) 612 SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper)
@@ -716,10 +616,10 @@ diff -NurpP --minimal linux-3.4.57/arch/s390/kernel/syscalls.S linux-3.4.57-vs2.
716 SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper) 616 SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper)
717 SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper) 617 SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper)
718 SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper) 618 SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper)
719diff -NurpP --minimal linux-3.4.57/arch/sh/Kconfig linux-3.4.57-vs2.3.3.9/arch/sh/Kconfig 619diff -NurpP --minimal linux-3.10.17/arch/sh/Kconfig linux-3.10.17-vs2.3.6.6/arch/sh/Kconfig
720--- linux-3.4.57/arch/sh/Kconfig 2012-05-21 16:06:33.000000000 +0000 620--- linux-3.10.17/arch/sh/Kconfig 2013-07-14 17:00:35.000000000 +0000
721+++ linux-3.4.57-vs2.3.3.9/arch/sh/Kconfig 2012-05-21 16:15:04.000000000 +0000 621+++ linux-3.10.17-vs2.3.6.6/arch/sh/Kconfig 2013-08-22 20:29:59.000000000 +0000
722@@ -905,6 +905,8 @@ source "fs/Kconfig" 622@@ -928,6 +928,8 @@ source "fs/Kconfig"
723 623
724 source "arch/sh/Kconfig.debug" 624 source "arch/sh/Kconfig.debug"
725 625
@@ -728,9 +628,9 @@ diff -NurpP --minimal linux-3.4.57/arch/sh/Kconfig linux-3.4.57-vs2.3.3.9/arch/s
728 source "security/Kconfig" 628 source "security/Kconfig"
729 629
730 source "crypto/Kconfig" 630 source "crypto/Kconfig"
731diff -NurpP --minimal linux-3.4.57/arch/sh/kernel/irq.c linux-3.4.57-vs2.3.3.9/arch/sh/kernel/irq.c 631diff -NurpP --minimal linux-3.10.17/arch/sh/kernel/irq.c linux-3.10.17-vs2.3.6.6/arch/sh/kernel/irq.c
732--- linux-3.4.57/arch/sh/kernel/irq.c 2011-07-22 09:17:41.000000000 +0000 632--- linux-3.10.17/arch/sh/kernel/irq.c 2012-12-11 03:30:57.000000000 +0000
733+++ linux-3.4.57-vs2.3.3.9/arch/sh/kernel/irq.c 2012-05-21 16:15:04.000000000 +0000 633+++ linux-3.10.17-vs2.3.6.6/arch/sh/kernel/irq.c 2013-08-22 20:29:59.000000000 +0000
734@@ -14,6 +14,7 @@ 634@@ -14,6 +14,7 @@
735 #include <linux/ftrace.h> 635 #include <linux/ftrace.h>
736 #include <linux/delay.h> 636 #include <linux/delay.h>
@@ -739,10 +639,10 @@ diff -NurpP --minimal linux-3.4.57/arch/sh/kernel/irq.c linux-3.4.57-vs2.3.3.9/a
739 #include <asm/processor.h> 639 #include <asm/processor.h>
740 #include <asm/machvec.h> 640 #include <asm/machvec.h>
741 #include <asm/uaccess.h> 641 #include <asm/uaccess.h>
742diff -NurpP --minimal linux-3.4.57/arch/sparc/Kconfig linux-3.4.57-vs2.3.3.9/arch/sparc/Kconfig 642diff -NurpP --minimal linux-3.10.17/arch/sparc/Kconfig linux-3.10.17-vs2.3.6.6/arch/sparc/Kconfig
743--- linux-3.4.57/arch/sparc/Kconfig 2013-08-13 14:12:51.000000000 +0000 643--- linux-3.10.17/arch/sparc/Kconfig 2013-07-14 17:00:35.000000000 +0000
744+++ linux-3.4.57-vs2.3.3.9/arch/sparc/Kconfig 2012-06-08 13:57:24.000000000 +0000 644+++ linux-3.10.17-vs2.3.6.6/arch/sparc/Kconfig 2013-08-22 20:29:59.000000000 +0000
745@@ -599,6 +599,8 @@ source "fs/Kconfig" 645@@ -550,6 +550,8 @@ source "fs/Kconfig"
746 646
747 source "arch/sparc/Kconfig.debug" 647 source "arch/sparc/Kconfig.debug"
748 648
@@ -751,10 +651,10 @@ diff -NurpP --minimal linux-3.4.57/arch/sparc/Kconfig linux-3.4.57-vs2.3.3.9/arc
751 source "security/Kconfig" 651 source "security/Kconfig"
752 652
753 source "crypto/Kconfig" 653 source "crypto/Kconfig"
754diff -NurpP --minimal linux-3.4.57/arch/sparc/include/asm/unistd.h linux-3.4.57-vs2.3.3.9/arch/sparc/include/asm/unistd.h 654diff -NurpP --minimal linux-3.10.17/arch/sparc/include/uapi/asm/unistd.h linux-3.10.17-vs2.3.6.6/arch/sparc/include/uapi/asm/unistd.h
755--- linux-3.4.57/arch/sparc/include/asm/unistd.h 2012-01-09 15:14:07.000000000 +0000 655--- linux-3.10.17/arch/sparc/include/uapi/asm/unistd.h 2013-02-19 13:57:17.000000000 +0000
756+++ linux-3.4.57-vs2.3.3.9/arch/sparc/include/asm/unistd.h 2012-05-21 16:15:04.000000000 +0000 656+++ linux-3.10.17-vs2.3.6.6/arch/sparc/include/uapi/asm/unistd.h 2013-08-22 20:29:59.000000000 +0000
757@@ -335,7 +335,7 @@ 657@@ -332,7 +332,7 @@
758 #define __NR_timer_getoverrun 264 658 #define __NR_timer_getoverrun 264
759 #define __NR_timer_delete 265 659 #define __NR_timer_delete 265
760 #define __NR_timer_create 266 660 #define __NR_timer_create 266
@@ -763,9 +663,9 @@ diff -NurpP --minimal linux-3.4.57/arch/sparc/include/asm/unistd.h linux-3.4.57-
763 #define __NR_io_setup 268 663 #define __NR_io_setup 268
764 #define __NR_io_destroy 269 664 #define __NR_io_destroy 269
765 #define __NR_io_submit 270 665 #define __NR_io_submit 270
766diff -NurpP --minimal linux-3.4.57/arch/sparc/kernel/systbls_32.S linux-3.4.57-vs2.3.3.9/arch/sparc/kernel/systbls_32.S 666diff -NurpP --minimal linux-3.10.17/arch/sparc/kernel/systbls_32.S linux-3.10.17-vs2.3.6.6/arch/sparc/kernel/systbls_32.S
767--- linux-3.4.57/arch/sparc/kernel/systbls_32.S 2012-01-09 15:14:09.000000000 +0000 667--- linux-3.10.17/arch/sparc/kernel/systbls_32.S 2013-05-31 13:44:48.000000000 +0000
768+++ linux-3.4.57-vs2.3.3.9/arch/sparc/kernel/systbls_32.S 2012-05-21 16:15:04.000000000 +0000 668+++ linux-3.10.17-vs2.3.6.6/arch/sparc/kernel/systbls_32.S 2013-08-22 20:29:59.000000000 +0000
769@@ -70,7 +70,7 @@ sys_call_table: 669@@ -70,7 +70,7 @@ sys_call_table:
770 /*250*/ .long sys_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_ni_syscall 670 /*250*/ .long sys_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_ni_syscall
771 /*255*/ .long sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep 671 /*255*/ .long sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
@@ -775,19 +675,19 @@ diff -NurpP --minimal linux-3.4.57/arch/sparc/kernel/systbls_32.S linux-3.4.57-v
775 /*270*/ .long sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink 675 /*270*/ .long sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
776 /*275*/ .long sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid 676 /*275*/ .long sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid
777 /*280*/ .long sys_tee, sys_add_key, sys_request_key, sys_keyctl, sys_openat 677 /*280*/ .long sys_tee, sys_add_key, sys_request_key, sys_keyctl, sys_openat
778diff -NurpP --minimal linux-3.4.57/arch/sparc/kernel/systbls_64.S linux-3.4.57-vs2.3.3.9/arch/sparc/kernel/systbls_64.S 678diff -NurpP --minimal linux-3.10.17/arch/sparc/kernel/systbls_64.S linux-3.10.17-vs2.3.6.6/arch/sparc/kernel/systbls_64.S
779--- linux-3.4.57/arch/sparc/kernel/systbls_64.S 2013-08-13 14:12:51.000000000 +0000 679--- linux-3.10.17/arch/sparc/kernel/systbls_64.S 2013-07-14 17:00:35.000000000 +0000
780+++ linux-3.4.57-vs2.3.3.9/arch/sparc/kernel/systbls_64.S 2012-06-08 13:57:24.000000000 +0000 680+++ linux-3.10.17-vs2.3.6.6/arch/sparc/kernel/systbls_64.S 2013-08-22 20:29:59.000000000 +0000
781@@ -71,7 +71,7 @@ sys_call_table32: 681@@ -71,7 +71,7 @@ sys_call_table32:
782 /*250*/ .word sys_mremap, compat_sys_sysctl, sys32_getsid, sys_fdatasync, sys_nis_syscall 682 /*250*/ .word sys_mremap, compat_sys_sysctl, sys_getsid, sys_fdatasync, sys_nis_syscall
783 .word sys32_sync_file_range, compat_sys_clock_settime, compat_sys_clock_gettime, compat_sys_clock_getres, sys32_clock_nanosleep 683 .word sys32_sync_file_range, compat_sys_clock_settime, compat_sys_clock_gettime, compat_sys_clock_getres, sys32_clock_nanosleep
784 /*260*/ .word compat_sys_sched_getaffinity, compat_sys_sched_setaffinity, sys32_timer_settime, compat_sys_timer_gettime, sys_timer_getoverrun 684 /*260*/ .word compat_sys_sched_getaffinity, compat_sys_sched_setaffinity, sys32_timer_settime, compat_sys_timer_gettime, sys_timer_getoverrun
785- .word sys_timer_delete, compat_sys_timer_create, sys_ni_syscall, compat_sys_io_setup, sys_io_destroy 685- .word sys_timer_delete, compat_sys_timer_create, sys_ni_syscall, compat_sys_io_setup, sys_io_destroy
786+ .word sys_timer_delete, compat_sys_timer_create, sys32_vserver, compat_sys_io_setup, sys_io_destroy 686+ .word sys_timer_delete, compat_sys_timer_create, sys32_vserver, compat_sys_io_setup, sys_io_destroy
787 /*270*/ .word sys32_io_submit, sys_io_cancel, compat_sys_io_getevents, sys32_mq_open, sys_mq_unlink 687 /*270*/ .word sys32_io_submit, sys_io_cancel, compat_sys_io_getevents, sys32_mq_open, sys_mq_unlink
788 .word compat_sys_mq_timedsend, compat_sys_mq_timedreceive, compat_sys_mq_notify, compat_sys_mq_getsetattr, compat_sys_waitid 688 .word compat_sys_mq_timedsend, compat_sys_mq_timedreceive, compat_sys_mq_notify, compat_sys_mq_getsetattr, compat_sys_waitid
789 /*280*/ .word sys32_tee, sys_add_key, sys_request_key, compat_sys_keyctl, compat_sys_openat 689 /*280*/ .word sys_tee, sys_add_key, sys_request_key, compat_sys_keyctl, compat_sys_openat
790@@ -148,7 +148,7 @@ sys_call_table: 690@@ -149,7 +149,7 @@ sys_call_table:
791 /*250*/ .word sys_64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nis_syscall 691 /*250*/ .word sys_64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nis_syscall
792 .word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep 692 .word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
793 /*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun 693 /*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun
@@ -796,9 +696,9 @@ diff -NurpP --minimal linux-3.4.57/arch/sparc/kernel/systbls_64.S linux-3.4.57-v
796 /*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink 696 /*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
797 .word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid 697 .word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid
798 /*280*/ .word sys_tee, sys_add_key, sys_request_key, sys_keyctl, sys_openat 698 /*280*/ .word sys_tee, sys_add_key, sys_request_key, sys_keyctl, sys_openat
799diff -NurpP --minimal linux-3.4.57/arch/um/Kconfig.rest linux-3.4.57-vs2.3.3.9/arch/um/Kconfig.rest 699diff -NurpP --minimal linux-3.10.17/arch/um/Kconfig.rest linux-3.10.17-vs2.3.6.6/arch/um/Kconfig.rest
800--- linux-3.4.57/arch/um/Kconfig.rest 2012-01-09 15:14:09.000000000 +0000 700--- linux-3.10.17/arch/um/Kconfig.rest 2012-12-11 03:30:57.000000000 +0000
801+++ linux-3.4.57-vs2.3.3.9/arch/um/Kconfig.rest 2012-05-21 16:15:04.000000000 +0000 701+++ linux-3.10.17-vs2.3.6.6/arch/um/Kconfig.rest 2013-08-22 20:29:59.000000000 +0000
802@@ -12,6 +12,8 @@ source "arch/um/Kconfig.net" 702@@ -12,6 +12,8 @@ source "arch/um/Kconfig.net"
803 703
804 source "fs/Kconfig" 704 source "fs/Kconfig"
@@ -808,10 +708,10 @@ diff -NurpP --minimal linux-3.4.57/arch/um/Kconfig.rest linux-3.4.57-vs2.3.3.9/a
808 source "security/Kconfig" 708 source "security/Kconfig"
809 709
810 source "crypto/Kconfig" 710 source "crypto/Kconfig"
811diff -NurpP --minimal linux-3.4.57/arch/x86/Kconfig linux-3.4.57-vs2.3.3.9/arch/x86/Kconfig 711diff -NurpP --minimal linux-3.10.17/arch/x86/Kconfig linux-3.10.17-vs2.3.6.6/arch/x86/Kconfig
812--- linux-3.4.57/arch/x86/Kconfig 2013-08-13 14:12:51.000000000 +0000 712--- linux-3.10.17/arch/x86/Kconfig 2013-07-14 17:00:36.000000000 +0000
813+++ linux-3.4.57-vs2.3.3.9/arch/x86/Kconfig 2013-03-02 15:26:44.000000000 +0000 713+++ linux-3.10.17-vs2.3.6.6/arch/x86/Kconfig 2013-08-22 20:29:59.000000000 +0000
814@@ -2221,6 +2221,8 @@ source "fs/Kconfig" 714@@ -2339,6 +2339,8 @@ source "fs/Kconfig"
815 715
816 source "arch/x86/Kconfig.debug" 716 source "arch/x86/Kconfig.debug"
817 717
@@ -820,9 +720,9 @@ diff -NurpP --minimal linux-3.4.57/arch/x86/Kconfig linux-3.4.57-vs2.3.3.9/arch/
820 source "security/Kconfig" 720 source "security/Kconfig"
821 721
822 source "crypto/Kconfig" 722 source "crypto/Kconfig"
823diff -NurpP --minimal linux-3.4.57/arch/x86/syscalls/syscall_32.tbl linux-3.4.57-vs2.3.3.9/arch/x86/syscalls/syscall_32.tbl 723diff -NurpP --minimal linux-3.10.17/arch/x86/syscalls/syscall_32.tbl linux-3.10.17-vs2.3.6.6/arch/x86/syscalls/syscall_32.tbl
824--- linux-3.4.57/arch/x86/syscalls/syscall_32.tbl 2012-05-21 16:06:42.000000000 +0000 724--- linux-3.10.17/arch/x86/syscalls/syscall_32.tbl 2013-07-14 17:00:37.000000000 +0000
825+++ linux-3.4.57-vs2.3.3.9/arch/x86/syscalls/syscall_32.tbl 2012-05-21 16:15:04.000000000 +0000 725+++ linux-3.10.17-vs2.3.6.6/arch/x86/syscalls/syscall_32.tbl 2013-08-22 20:29:59.000000000 +0000
826@@ -279,7 +279,7 @@ 726@@ -279,7 +279,7 @@
827 270 i386 tgkill sys_tgkill 727 270 i386 tgkill sys_tgkill
828 271 i386 utimes sys_utimes compat_sys_utimes 728 271 i386 utimes sys_utimes compat_sys_utimes
@@ -832,9 +732,9 @@ diff -NurpP --minimal linux-3.4.57/arch/x86/syscalls/syscall_32.tbl linux-3.4.57
832 274 i386 mbind sys_mbind 732 274 i386 mbind sys_mbind
833 275 i386 get_mempolicy sys_get_mempolicy compat_sys_get_mempolicy 733 275 i386 get_mempolicy sys_get_mempolicy compat_sys_get_mempolicy
834 276 i386 set_mempolicy sys_set_mempolicy 734 276 i386 set_mempolicy sys_set_mempolicy
835diff -NurpP --minimal linux-3.4.57/arch/x86/syscalls/syscall_64.tbl linux-3.4.57-vs2.3.3.9/arch/x86/syscalls/syscall_64.tbl 735diff -NurpP --minimal linux-3.10.17/arch/x86/syscalls/syscall_64.tbl linux-3.10.17-vs2.3.6.6/arch/x86/syscalls/syscall_64.tbl
836--- linux-3.4.57/arch/x86/syscalls/syscall_64.tbl 2013-08-13 14:12:52.000000000 +0000 736--- linux-3.10.17/arch/x86/syscalls/syscall_64.tbl 2013-05-31 13:44:50.000000000 +0000
837+++ linux-3.4.57-vs2.3.3.9/arch/x86/syscalls/syscall_64.tbl 2012-09-16 18:49:11.000000000 +0000 737+++ linux-3.10.17-vs2.3.6.6/arch/x86/syscalls/syscall_64.tbl 2013-08-22 20:29:59.000000000 +0000
838@@ -242,7 +242,7 @@ 738@@ -242,7 +242,7 @@
839 233 common epoll_ctl sys_epoll_ctl 739 233 common epoll_ctl sys_epoll_ctl
840 234 common tgkill sys_tgkill 740 234 common tgkill sys_tgkill
@@ -844,10 +744,10 @@ diff -NurpP --minimal linux-3.4.57/arch/x86/syscalls/syscall_64.tbl linux-3.4.57
844 237 common mbind sys_mbind 744 237 common mbind sys_mbind
845 238 common set_mempolicy sys_set_mempolicy 745 238 common set_mempolicy sys_set_mempolicy
846 239 common get_mempolicy sys_get_mempolicy 746 239 common get_mempolicy sys_get_mempolicy
847diff -NurpP --minimal linux-3.4.57/drivers/block/Kconfig linux-3.4.57-vs2.3.3.9/drivers/block/Kconfig 747diff -NurpP --minimal linux-3.10.17/drivers/block/Kconfig linux-3.10.17-vs2.3.6.6/drivers/block/Kconfig
848--- linux-3.4.57/drivers/block/Kconfig 2012-05-21 16:06:43.000000000 +0000 748--- linux-3.10.17/drivers/block/Kconfig 2013-05-31 13:44:51.000000000 +0000
849+++ linux-3.4.57-vs2.3.3.9/drivers/block/Kconfig 2012-05-21 16:15:04.000000000 +0000 749+++ linux-3.10.17-vs2.3.6.6/drivers/block/Kconfig 2013-08-22 20:29:59.000000000 +0000
850@@ -290,6 +290,13 @@ config BLK_DEV_CRYPTOLOOP 750@@ -278,6 +278,13 @@ config BLK_DEV_CRYPTOLOOP
851 751
852 source "drivers/block/drbd/Kconfig" 752 source "drivers/block/drbd/Kconfig"
853 753
@@ -861,20 +761,20 @@ diff -NurpP --minimal linux-3.4.57/drivers/block/Kconfig linux-3.4.57-vs2.3.3.9/
861 config BLK_DEV_NBD 761 config BLK_DEV_NBD
862 tristate "Network block device support" 762 tristate "Network block device support"
863 depends on NET 763 depends on NET
864diff -NurpP --minimal linux-3.4.57/drivers/block/Makefile linux-3.4.57-vs2.3.3.9/drivers/block/Makefile 764diff -NurpP --minimal linux-3.10.17/drivers/block/Makefile linux-3.10.17-vs2.3.6.6/drivers/block/Makefile
865--- linux-3.4.57/drivers/block/Makefile 2012-03-19 18:46:52.000000000 +0000 765--- linux-3.10.17/drivers/block/Makefile 2013-07-14 17:00:41.000000000 +0000
866+++ linux-3.4.57-vs2.3.3.9/drivers/block/Makefile 2012-05-21 16:15:04.000000000 +0000 766+++ linux-3.10.17-vs2.3.6.6/drivers/block/Makefile 2013-08-22 20:29:59.000000000 +0000
867@@ -35,6 +35,7 @@ obj-$(CONFIG_VIODASD) += viodasd.o 767@@ -33,6 +33,7 @@ obj-$(CONFIG_VIRTIO_BLK) += virtio_blk.o
768 obj-$(CONFIG_VIODASD) += viodasd.o
868 obj-$(CONFIG_BLK_DEV_SX8) += sx8.o 769 obj-$(CONFIG_BLK_DEV_SX8) += sx8.o
869 obj-$(CONFIG_BLK_DEV_UB) += ub.o
870 obj-$(CONFIG_BLK_DEV_HD) += hd.o 770 obj-$(CONFIG_BLK_DEV_HD) += hd.o
871+obj-$(CONFIG_BLK_DEV_VROOT) += vroot.o 771+obj-$(CONFIG_BLK_DEV_VROOT) += vroot.o
872 772
873 obj-$(CONFIG_XEN_BLKDEV_FRONTEND) += xen-blkfront.o 773 obj-$(CONFIG_XEN_BLKDEV_FRONTEND) += xen-blkfront.o
874 obj-$(CONFIG_XEN_BLKDEV_BACKEND) += xen-blkback/ 774 obj-$(CONFIG_XEN_BLKDEV_BACKEND) += xen-blkback/
875diff -NurpP --minimal linux-3.4.57/drivers/block/loop.c linux-3.4.57-vs2.3.3.9/drivers/block/loop.c 775diff -NurpP --minimal linux-3.10.17/drivers/block/loop.c linux-3.10.17-vs2.3.6.6/drivers/block/loop.c
876--- linux-3.4.57/drivers/block/loop.c 2013-08-13 14:12:54.000000000 +0000 776--- linux-3.10.17/drivers/block/loop.c 2013-07-14 17:00:41.000000000 +0000
877+++ linux-3.4.57-vs2.3.3.9/drivers/block/loop.c 2013-07-14 13:38:28.000000000 +0000 777+++ linux-3.10.17-vs2.3.6.6/drivers/block/loop.c 2013-08-22 20:29:59.000000000 +0000
878@@ -76,6 +76,7 @@ 778@@ -76,6 +76,7 @@
879 #include <linux/sysfs.h> 779 #include <linux/sysfs.h>
880 #include <linux/miscdevice.h> 780 #include <linux/miscdevice.h>
@@ -883,7 +783,7 @@ diff -NurpP --minimal linux-3.4.57/drivers/block/loop.c linux-3.4.57-vs2.3.3.9/d
883 783
884 #include <asm/uaccess.h> 784 #include <asm/uaccess.h>
885 785
886@@ -869,6 +870,7 @@ static int loop_set_fd(struct loop_devic 786@@ -884,6 +885,7 @@ static int loop_set_fd(struct loop_devic
887 lo->lo_blocksize = lo_blocksize; 787 lo->lo_blocksize = lo_blocksize;
888 lo->lo_device = bdev; 788 lo->lo_device = bdev;
889 lo->lo_flags = lo_flags; 789 lo->lo_flags = lo_flags;
@@ -891,7 +791,7 @@ diff -NurpP --minimal linux-3.4.57/drivers/block/loop.c linux-3.4.57-vs2.3.3.9/d
891 lo->lo_backing_file = file; 791 lo->lo_backing_file = file;
892 lo->transfer = transfer_none; 792 lo->transfer = transfer_none;
893 lo->ioctl = NULL; 793 lo->ioctl = NULL;
894@@ -1006,6 +1008,7 @@ static int loop_clr_fd(struct loop_devic 794@@ -1035,6 +1037,7 @@ static int loop_clr_fd(struct loop_devic
895 lo->lo_sizelimit = 0; 795 lo->lo_sizelimit = 0;
896 lo->lo_encrypt_key_size = 0; 796 lo->lo_encrypt_key_size = 0;
897 lo->lo_thread = NULL; 797 lo->lo_thread = NULL;
@@ -899,16 +799,16 @@ diff -NurpP --minimal linux-3.4.57/drivers/block/loop.c linux-3.4.57-vs2.3.3.9/d
899 memset(lo->lo_encrypt_key, 0, LO_KEY_SIZE); 799 memset(lo->lo_encrypt_key, 0, LO_KEY_SIZE);
900 memset(lo->lo_crypt_name, 0, LO_NAME_SIZE); 800 memset(lo->lo_crypt_name, 0, LO_NAME_SIZE);
901 memset(lo->lo_file_name, 0, LO_NAME_SIZE); 801 memset(lo->lo_file_name, 0, LO_NAME_SIZE);
902@@ -1049,7 +1052,7 @@ loop_set_status(struct loop_device *lo, 802@@ -1078,7 +1081,7 @@ loop_set_status(struct loop_device *lo,
903 803
904 if (lo->lo_encrypt_key_size && 804 if (lo->lo_encrypt_key_size &&
905 lo->lo_key_owner != uid && 805 !uid_eq(lo->lo_key_owner, uid) &&
906- !capable(CAP_SYS_ADMIN)) 806- !capable(CAP_SYS_ADMIN))
907+ !vx_capable(CAP_SYS_ADMIN, VXC_ADMIN_CLOOP)) 807+ !vx_capable(CAP_SYS_ADMIN, VXC_ADMIN_CLOOP))
908 return -EPERM; 808 return -EPERM;
909 if (lo->lo_state != Lo_bound) 809 if (lo->lo_state != Lo_bound)
910 return -ENXIO; 810 return -ENXIO;
911@@ -1139,7 +1142,8 @@ loop_get_status(struct loop_device *lo, 811@@ -1168,7 +1171,8 @@ loop_get_status(struct loop_device *lo,
912 memcpy(info->lo_crypt_name, lo->lo_crypt_name, LO_NAME_SIZE); 812 memcpy(info->lo_crypt_name, lo->lo_crypt_name, LO_NAME_SIZE);
913 info->lo_encrypt_type = 813 info->lo_encrypt_type =
914 lo->lo_encryption ? lo->lo_encryption->number : 0; 814 lo->lo_encryption ? lo->lo_encryption->number : 0;
@@ -918,7 +818,7 @@ diff -NurpP --minimal linux-3.4.57/drivers/block/loop.c linux-3.4.57-vs2.3.3.9/d
918 info->lo_encrypt_key_size = lo->lo_encrypt_key_size; 818 info->lo_encrypt_key_size = lo->lo_encrypt_key_size;
919 memcpy(info->lo_encrypt_key, lo->lo_encrypt_key, 819 memcpy(info->lo_encrypt_key, lo->lo_encrypt_key,
920 lo->lo_encrypt_key_size); 820 lo->lo_encrypt_key_size);
921@@ -1497,6 +1501,11 @@ static int lo_open(struct block_device * 821@@ -1510,6 +1514,11 @@ static int lo_open(struct block_device *
922 goto out; 822 goto out;
923 } 823 }
924 824
@@ -930,10 +830,10 @@ diff -NurpP --minimal linux-3.4.57/drivers/block/loop.c linux-3.4.57-vs2.3.3.9/d
930 mutex_lock(&lo->lo_ctl_mutex); 830 mutex_lock(&lo->lo_ctl_mutex);
931 lo->lo_refcnt++; 831 lo->lo_refcnt++;
932 mutex_unlock(&lo->lo_ctl_mutex); 832 mutex_unlock(&lo->lo_ctl_mutex);
933diff -NurpP --minimal linux-3.4.57/drivers/block/vroot.c linux-3.4.57-vs2.3.3.9/drivers/block/vroot.c 833diff -NurpP --minimal linux-3.10.17/drivers/block/vroot.c linux-3.10.17-vs2.3.6.6/drivers/block/vroot.c
934--- linux-3.4.57/drivers/block/vroot.c 1970-01-01 00:00:00.000000000 +0000 834--- linux-3.10.17/drivers/block/vroot.c 1970-01-01 00:00:00.000000000 +0000
935+++ linux-3.4.57-vs2.3.3.9/drivers/block/vroot.c 2012-05-21 16:15:04.000000000 +0000 835+++ linux-3.10.17-vs2.3.6.6/drivers/block/vroot.c 2013-08-23 00:23:45.000000000 +0000
936@@ -0,0 +1,291 @@ 836@@ -0,0 +1,290 @@
937+/* 837+/*
938+ * linux/drivers/block/vroot.c 838+ * linux/drivers/block/vroot.c
939+ * 839+ *
@@ -1064,14 +964,13 @@ diff -NurpP --minimal linux-3.4.57/drivers/block/vroot.c linux-3.4.57-vs2.3.3.9/
1064+ return 0; 964+ return 0;
1065+} 965+}
1066+ 966+
1067+static int vr_release(struct gendisk *disk, fmode_t mode) 967+static void vr_release(struct gendisk *disk, fmode_t mode)
1068+{ 968+{
1069+ struct vroot_device *vr = disk->private_data; 969+ struct vroot_device *vr = disk->private_data;
1070+ 970+
1071+ down(&vr->vr_ctl_mutex); 971+ down(&vr->vr_ctl_mutex);
1072+ --vr->vr_refcnt; 972+ --vr->vr_refcnt;
1073+ up(&vr->vr_ctl_mutex); 973+ up(&vr->vr_ctl_mutex);
1074+ return 0;
1075+} 974+}
1076+ 975+
1077+static struct block_device_operations vr_fops = { 976+static struct block_device_operations vr_fops = {
@@ -1225,9 +1124,9 @@ diff -NurpP --minimal linux-3.4.57/drivers/block/vroot.c linux-3.4.57-vs2.3.3.9/
1225+ 1124+
1226+#endif 1125+#endif
1227+ 1126+
1228diff -NurpP --minimal linux-3.4.57/drivers/infiniband/Kconfig linux-3.4.57-vs2.3.3.9/drivers/infiniband/Kconfig 1127diff -NurpP --minimal linux-3.10.17/drivers/infiniband/Kconfig linux-3.10.17-vs2.3.6.6/drivers/infiniband/Kconfig
1229--- linux-3.4.57/drivers/infiniband/Kconfig 2012-03-19 18:46:54.000000000 +0000 1128--- linux-3.10.17/drivers/infiniband/Kconfig 2013-07-14 17:00:49.000000000 +0000
1230+++ linux-3.4.57-vs2.3.3.9/drivers/infiniband/Kconfig 2012-05-21 16:15:04.000000000 +0000 1129+++ linux-3.10.17-vs2.3.6.6/drivers/infiniband/Kconfig 2013-08-22 20:29:59.000000000 +0000
1231@@ -39,7 +39,7 @@ config INFINIBAND_USER_MEM 1130@@ -39,7 +39,7 @@ config INFINIBAND_USER_MEM
1232 config INFINIBAND_ADDR_TRANS 1131 config INFINIBAND_ADDR_TRANS
1233 bool 1132 bool
@@ -1237,10 +1136,10 @@ diff -NurpP --minimal linux-3.4.57/drivers/infiniband/Kconfig linux-3.4.57-vs2.3
1237 default y 1136 default y
1238 1137
1239 source "drivers/infiniband/hw/mthca/Kconfig" 1138 source "drivers/infiniband/hw/mthca/Kconfig"
1240diff -NurpP --minimal linux-3.4.57/drivers/infiniband/core/addr.c linux-3.4.57-vs2.3.3.9/drivers/infiniband/core/addr.c 1139diff -NurpP --minimal linux-3.10.17/drivers/infiniband/core/addr.c linux-3.10.17-vs2.3.6.6/drivers/infiniband/core/addr.c
1241--- linux-3.4.57/drivers/infiniband/core/addr.c 2012-05-21 16:06:46.000000000 +0000 1140--- linux-3.10.17/drivers/infiniband/core/addr.c 2012-12-11 03:30:57.000000000 +0000
1242+++ linux-3.4.57-vs2.3.3.9/drivers/infiniband/core/addr.c 2012-05-21 16:15:04.000000000 +0000 1141+++ linux-3.10.17-vs2.3.6.6/drivers/infiniband/core/addr.c 2013-08-22 20:29:59.000000000 +0000
1243@@ -263,7 +263,7 @@ static int addr6_resolve(struct sockaddr 1142@@ -261,7 +261,7 @@ static int addr6_resolve(struct sockaddr
1244 1143
1245 if (ipv6_addr_any(&fl6.saddr)) { 1144 if (ipv6_addr_any(&fl6.saddr)) {
1246 ret = ipv6_dev_get_saddr(&init_net, ip6_dst_idev(dst)->dev, 1145 ret = ipv6_dev_get_saddr(&init_net, ip6_dst_idev(dst)->dev,
@@ -1249,9 +1148,9 @@ diff -NurpP --minimal linux-3.4.57/drivers/infiniband/core/addr.c linux-3.4.57-v
1249 if (ret) 1148 if (ret)
1250 goto put; 1149 goto put;
1251 1150
1252diff -NurpP --minimal linux-3.4.57/drivers/md/dm-ioctl.c linux-3.4.57-vs2.3.3.9/drivers/md/dm-ioctl.c 1151diff -NurpP --minimal linux-3.10.17/drivers/md/dm-ioctl.c linux-3.10.17-vs2.3.6.6/drivers/md/dm-ioctl.c
1253--- linux-3.4.57/drivers/md/dm-ioctl.c 2013-08-13 14:13:03.000000000 +0000 1152--- linux-3.10.17/drivers/md/dm-ioctl.c 2013-10-25 15:17:34.000000000 +0000
1254+++ linux-3.4.57-vs2.3.3.9/drivers/md/dm-ioctl.c 2013-02-11 23:37:30.000000000 +0000 1153+++ linux-3.10.17-vs2.3.6.6/drivers/md/dm-ioctl.c 2013-08-22 20:29:59.000000000 +0000
1255@@ -16,6 +16,7 @@ 1154@@ -16,6 +16,7 @@
1256 #include <linux/dm-ioctl.h> 1155 #include <linux/dm-ioctl.h>
1257 #include <linux/hdreg.h> 1156 #include <linux/hdreg.h>
@@ -1326,9 +1225,9 @@ diff -NurpP --minimal linux-3.4.57/drivers/md/dm-ioctl.c linux-3.4.57-vs2.3.3.9/
1326 if (old_nl) 1225 if (old_nl)
1327 old_nl->next = (uint32_t) ((void *) nl - 1226 old_nl->next = (uint32_t) ((void *) nl -
1328 (void *) old_nl); 1227 (void *) old_nl);
1329@@ -1624,8 +1636,8 @@ static int ctl_ioctl(uint command, struc 1228@@ -1725,8 +1737,8 @@ static int ctl_ioctl(uint command, struc
1330 ioctl_fn fn = NULL;
1331 size_t input_param_size; 1229 size_t input_param_size;
1230 struct dm_ioctl param_kernel;
1332 1231
1333- /* only root can play with this */ 1232- /* only root can play with this */
1334- if (!capable(CAP_SYS_ADMIN)) 1233- if (!capable(CAP_SYS_ADMIN))
@@ -1337,9 +1236,9 @@ diff -NurpP --minimal linux-3.4.57/drivers/md/dm-ioctl.c linux-3.4.57-vs2.3.3.9/
1337 return -EACCES; 1236 return -EACCES;
1338 1237
1339 if (_IOC_TYPE(command) != DM_IOCTL) 1238 if (_IOC_TYPE(command) != DM_IOCTL)
1340diff -NurpP --minimal linux-3.4.57/drivers/md/dm.c linux-3.4.57-vs2.3.3.9/drivers/md/dm.c 1239diff -NurpP --minimal linux-3.10.17/drivers/md/dm.c linux-3.10.17-vs2.3.6.6/drivers/md/dm.c
1341--- linux-3.4.57/drivers/md/dm.c 2013-08-13 14:13:03.000000000 +0000 1240--- linux-3.10.17/drivers/md/dm.c 2013-10-25 15:17:34.000000000 +0000
1342+++ linux-3.4.57-vs2.3.3.9/drivers/md/dm.c 2012-12-08 00:53:53.000000000 +0000 1241+++ linux-3.10.17-vs2.3.6.6/drivers/md/dm.c 2013-10-09 17:37:21.000000000 +0000
1343@@ -19,6 +19,7 @@ 1242@@ -19,6 +19,7 @@
1344 #include <linux/idr.h> 1243 #include <linux/idr.h>
1345 #include <linux/hdreg.h> 1244 #include <linux/hdreg.h>
@@ -1348,15 +1247,15 @@ diff -NurpP --minimal linux-3.4.57/drivers/md/dm.c linux-3.4.57-vs2.3.3.9/driver
1348 1247
1349 #include <trace/events/block.h> 1248 #include <trace/events/block.h>
1350 1249
1351@@ -131,6 +132,7 @@ struct mapped_device { 1250@@ -125,6 +126,7 @@ struct mapped_device {
1352 rwlock_t map_lock; 1251 rwlock_t map_lock;
1353 atomic_t holders; 1252 atomic_t holders;
1354 atomic_t open_count; 1253 atomic_t open_count;
1355+ xid_t xid; 1254+ vxid_t xid;
1356 1255
1357 unsigned long flags; 1256 unsigned long flags;
1358 1257
1359@@ -343,6 +345,7 @@ int dm_deleting_md(struct mapped_device 1258@@ -317,6 +319,7 @@ int dm_deleting_md(struct mapped_device
1360 static int dm_blk_open(struct block_device *bdev, fmode_t mode) 1259 static int dm_blk_open(struct block_device *bdev, fmode_t mode)
1361 { 1260 {
1362 struct mapped_device *md; 1261 struct mapped_device *md;
@@ -1364,7 +1263,7 @@ diff -NurpP --minimal linux-3.4.57/drivers/md/dm.c linux-3.4.57-vs2.3.3.9/driver
1364 1263
1365 spin_lock(&_minor_lock); 1264 spin_lock(&_minor_lock);
1366 1265
1367@@ -351,18 +354,19 @@ static int dm_blk_open(struct block_devi 1266@@ -325,18 +328,19 @@ static int dm_blk_open(struct block_devi
1368 goto out; 1267 goto out;
1369 1268
1370 if (test_bit(DMF_FREEING, &md->flags) || 1269 if (test_bit(DMF_FREEING, &md->flags) ||
@@ -1389,15 +1288,15 @@ diff -NurpP --minimal linux-3.4.57/drivers/md/dm.c linux-3.4.57-vs2.3.3.9/driver
1389+ return ret; 1288+ return ret;
1390 } 1289 }
1391 1290
1392 static int dm_blk_close(struct gendisk *disk, fmode_t mode) 1291 static void dm_blk_close(struct gendisk *disk, fmode_t mode)
1393@@ -583,6 +587,14 @@ int dm_set_geometry(struct mapped_device 1292@@ -552,6 +556,14 @@ int dm_set_geometry(struct mapped_device
1394 return 0; 1293 return 0;
1395 } 1294 }
1396 1295
1397+/* 1296+/*
1398+ * Get the xid associated with a dm device 1297+ * Get the xid associated with a dm device
1399+ */ 1298+ */
1400+xid_t dm_get_xid(struct mapped_device *md) 1299+vxid_t dm_get_xid(struct mapped_device *md)
1401+{ 1300+{
1402+ return md->xid; 1301+ return md->xid;
1403+} 1302+}
@@ -1405,7 +1304,7 @@ diff -NurpP --minimal linux-3.4.57/drivers/md/dm.c linux-3.4.57-vs2.3.3.9/driver
1405 /*----------------------------------------------------------------- 1304 /*-----------------------------------------------------------------
1406 * CRUD START: 1305 * CRUD START:
1407 * A more elegant soln is in the works that uses the queue 1306 * A more elegant soln is in the works that uses the queue
1408@@ -1876,6 +1888,7 @@ static struct mapped_device *alloc_dev(i 1307@@ -1889,6 +1901,7 @@ static struct mapped_device *alloc_dev(i
1409 INIT_LIST_HEAD(&md->uevent_list); 1308 INIT_LIST_HEAD(&md->uevent_list);
1410 spin_lock_init(&md->uevent_lock); 1309 spin_lock_init(&md->uevent_lock);
1411 1310
@@ -1413,21 +1312,21 @@ diff -NurpP --minimal linux-3.4.57/drivers/md/dm.c linux-3.4.57-vs2.3.3.9/driver
1413 md->queue = blk_alloc_queue(GFP_KERNEL); 1312 md->queue = blk_alloc_queue(GFP_KERNEL);
1414 if (!md->queue) 1313 if (!md->queue)
1415 goto bad_queue; 1314 goto bad_queue;
1416diff -NurpP --minimal linux-3.4.57/drivers/md/dm.h linux-3.4.57-vs2.3.3.9/drivers/md/dm.h 1315diff -NurpP --minimal linux-3.10.17/drivers/md/dm.h linux-3.10.17-vs2.3.6.6/drivers/md/dm.h
1417--- linux-3.4.57/drivers/md/dm.h 2012-01-09 15:14:21.000000000 +0000 1316--- linux-3.10.17/drivers/md/dm.h 2013-02-19 13:57:51.000000000 +0000
1418+++ linux-3.4.57-vs2.3.3.9/drivers/md/dm.h 2012-05-21 16:15:04.000000000 +0000 1317+++ linux-3.10.17-vs2.3.6.6/drivers/md/dm.h 2013-08-22 20:29:59.000000000 +0000
1419@@ -41,6 +41,8 @@ struct dm_dev_internal { 1318@@ -46,6 +46,8 @@ struct dm_dev_internal {
1420 struct dm_table; 1319 struct dm_table;
1421 struct dm_md_mempools; 1320 struct dm_md_mempools;
1422 1321
1423+xid_t dm_get_xid(struct mapped_device *md); 1322+vxid_t dm_get_xid(struct mapped_device *md);
1424+ 1323+
1425 /*----------------------------------------------------------------- 1324 /*-----------------------------------------------------------------
1426 * Internal table functions. 1325 * Internal table functions.
1427 *---------------------------------------------------------------*/ 1326 *---------------------------------------------------------------*/
1428diff -NurpP --minimal linux-3.4.57/drivers/net/tun.c linux-3.4.57-vs2.3.3.9/drivers/net/tun.c 1327diff -NurpP --minimal linux-3.10.17/drivers/net/tun.c linux-3.10.17-vs2.3.6.6/drivers/net/tun.c
1429--- linux-3.4.57/drivers/net/tun.c 2013-08-13 14:13:14.000000000 +0000 1328--- linux-3.10.17/drivers/net/tun.c 2013-10-25 15:17:36.000000000 +0000
1430+++ linux-3.4.57-vs2.3.3.9/drivers/net/tun.c 2013-03-30 21:29:17.000000000 +0000 1329+++ linux-3.10.17-vs2.3.6.6/drivers/net/tun.c 2013-10-26 18:03:16.000000000 +0000
1431@@ -64,6 +64,7 @@ 1330@@ -64,6 +64,7 @@
1432 #include <linux/nsproxy.h> 1331 #include <linux/nsproxy.h>
1433 #include <linux/virtio_net.h> 1332 #include <linux/virtio_net.h>
@@ -1436,52 +1335,51 @@ diff -NurpP --minimal linux-3.4.57/drivers/net/tun.c linux-3.4.57-vs2.3.3.9/driv
1436 #include <net/net_namespace.h> 1335 #include <net/net_namespace.h>
1437 #include <net/netns/generic.h> 1336 #include <net/netns/generic.h>
1438 #include <net/rtnetlink.h> 1337 #include <net/rtnetlink.h>
1439@@ -120,6 +121,7 @@ struct tun_struct { 1338@@ -164,6 +165,7 @@ struct tun_struct {
1440 unsigned int flags; 1339 unsigned int flags;
1441 uid_t owner; 1340 kuid_t owner;
1442 gid_t group; 1341 kgid_t group;
1443+ nid_t nid; 1342+ vnid_t nid;
1444 1343
1445 struct net_device *dev; 1344 struct net_device *dev;
1446 netdev_features_t set_features; 1345 netdev_features_t set_features;
1447@@ -912,6 +914,7 @@ static void tun_setup(struct net_device 1346@@ -380,6 +382,7 @@ static inline bool tun_not_capable(struc
1347 return ((uid_valid(tun->owner) && !uid_eq(cred->euid, tun->owner)) ||
1348 (gid_valid(tun->group) && !in_egroup_p(tun->group))) &&
1349 !ns_capable(net->user_ns, CAP_NET_ADMIN);
1350+ /* !cap_raised(current_cap(), CAP_NET_ADMIN) */
1351 }
1352
1353 static void tun_set_real_num_queues(struct tun_struct *tun)
1354@@ -1425,6 +1428,7 @@ static void tun_setup(struct net_device
1448 1355
1449 tun->owner = -1; 1356 tun->owner = INVALID_UID;
1450 tun->group = -1; 1357 tun->group = INVALID_GID;
1451+ tun->nid = current->nid; 1358+ tun->nid = nx_current_nid();
1452 1359
1453 dev->ethtool_ops = &tun_ethtool_ops; 1360 dev->ethtool_ops = &tun_ethtool_ops;
1454 dev->destructor = tun_free_netdev; 1361 dev->destructor = tun_free_netdev;
1455@@ -1070,7 +1073,7 @@ static int tun_set_iff(struct net *net, 1362@@ -1616,6 +1620,9 @@ static int tun_set_iff(struct net *net,
1456
1457 if (((tun->owner != -1 && cred->euid != tun->owner) ||
1458 (tun->group != -1 && !in_egroup_p(tun->group))) &&
1459- !capable(CAP_NET_ADMIN))
1460+ !cap_raised(current_cap(), CAP_NET_ADMIN))
1461 return -EPERM;
1462 err = security_tun_dev_attach(tun->socket.sk);
1463 if (err < 0)
1464@@ -1084,7 +1087,7 @@ static int tun_set_iff(struct net *net,
1465 char *name;
1466 unsigned long flags = 0;
1467
1468- if (!capable(CAP_NET_ADMIN))
1469+ if (!nx_capable(CAP_NET_ADMIN, NXC_TUN_CREATE))
1470 return -EPERM;
1471 err = security_tun_dev_create();
1472 if (err < 0) 1363 if (err < 0)
1473@@ -1154,6 +1157,9 @@ static int tun_set_iff(struct net *net, 1364 return err;
1474
1475 sk->sk_destruct = tun_sock_destruct;
1476 1365
1477+ if (!nx_check(tun->nid, VS_IDENT | VS_HOSTID | VS_ADMIN_P)) 1366+ if (!nx_check(tun->nid, VS_IDENT | VS_HOSTID | VS_ADMIN_P))
1478+ return -EPERM; 1367+ return -EPERM;
1479+ 1368+
1480 err = tun_attach(tun, file); 1369 err = tun_attach(tun, file);
1481 if (err < 0) 1370 if (err < 0)
1482 goto failed; 1371 return err;
1483@@ -1337,6 +1343,16 @@ static long __tun_chr_ioctl(struct file 1372@@ -1634,7 +1641,7 @@ static int tun_set_iff(struct net *net,
1484 tun_debug(KERN_INFO, tun, "group set to %d\n", tun->group); 1373 int queues = ifr->ifr_flags & IFF_MULTI_QUEUE ?
1374 MAX_TAP_QUEUES : 1;
1375
1376- if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
1377+ if (!vx_ns_capable(net->user_ns, CAP_NET_ADMIN, NXC_TUN_CREATE))
1378 return -EPERM;
1379 err = security_tun_dev_create();
1380 if (err < 0)
1381@@ -1985,6 +1992,16 @@ static long __tun_chr_ioctl(struct file
1382 from_kgid(&init_user_ns, tun->group));
1485 break; 1383 break;
1486 1384
1487+ case TUNSETNID: 1385+ case TUNSETNID:
@@ -1489,7 +1387,7 @@ diff -NurpP --minimal linux-3.4.57/drivers/net/tun.c linux-3.4.57-vs2.3.3.9/driv
1489+ return -EPERM; 1387+ return -EPERM;
1490+ 1388+
1491+ /* Set nid owner of the device */ 1389+ /* Set nid owner of the device */
1492+ tun->nid = (nid_t) arg; 1390+ tun->nid = (vnid_t) arg;
1493+ 1391+
1494+ tun_debug(KERN_INFO, tun, "nid owner set to %u\n", tun->nid); 1392+ tun_debug(KERN_INFO, tun, "nid owner set to %u\n", tun->nid);
1495+ break; 1393+ break;
@@ -1497,18 +1395,18 @@ diff -NurpP --minimal linux-3.4.57/drivers/net/tun.c linux-3.4.57-vs2.3.3.9/driv
1497 case TUNSETLINK: 1395 case TUNSETLINK:
1498 /* Only allow setting the type when the interface is down */ 1396 /* Only allow setting the type when the interface is down */
1499 if (tun->dev->flags & IFF_UP) { 1397 if (tun->dev->flags & IFF_UP) {
1500diff -NurpP --minimal linux-3.4.57/drivers/tty/sysrq.c linux-3.4.57-vs2.3.3.9/drivers/tty/sysrq.c 1398diff -NurpP --minimal linux-3.10.17/drivers/tty/sysrq.c linux-3.10.17-vs2.3.6.6/drivers/tty/sysrq.c
1501--- linux-3.4.57/drivers/tty/sysrq.c 2012-05-21 16:07:16.000000000 +0000 1399--- linux-3.10.17/drivers/tty/sysrq.c 2013-07-14 17:01:22.000000000 +0000
1502+++ linux-3.4.57-vs2.3.3.9/drivers/tty/sysrq.c 2012-05-21 16:15:04.000000000 +0000 1400+++ linux-3.10.17-vs2.3.6.6/drivers/tty/sysrq.c 2013-08-22 20:58:35.000000000 +0000
1503@@ -41,6 +41,7 @@ 1401@@ -44,6 +44,7 @@
1504 #include <linux/slab.h>
1505 #include <linux/input.h>
1506 #include <linux/uaccess.h> 1402 #include <linux/uaccess.h>
1403 #include <linux/moduleparam.h>
1404 #include <linux/jiffies.h>
1507+#include <linux/vserver/debug.h> 1405+#include <linux/vserver/debug.h>
1508 1406
1509 #include <asm/ptrace.h> 1407 #include <asm/ptrace.h>
1510 #include <asm/irq_regs.h> 1408 #include <asm/irq_regs.h>
1511@@ -398,6 +399,21 @@ static struct sysrq_key_op sysrq_unrt_op 1409@@ -405,6 +406,21 @@ static struct sysrq_key_op sysrq_unrt_op
1512 .enable_mask = SYSRQ_ENABLE_RTNICE, 1410 .enable_mask = SYSRQ_ENABLE_RTNICE,
1513 }; 1411 };
1514 1412
@@ -1530,10 +1428,10 @@ diff -NurpP --minimal linux-3.4.57/drivers/tty/sysrq.c linux-3.4.57-vs2.3.3.9/dr
1530 /* Key Operations table and lock */ 1428 /* Key Operations table and lock */
1531 static DEFINE_SPINLOCK(sysrq_key_table_lock); 1429 static DEFINE_SPINLOCK(sysrq_key_table_lock);
1532 1430
1533@@ -452,7 +468,11 @@ static struct sysrq_key_op *sysrq_key_ta 1431@@ -460,7 +476,11 @@ static struct sysrq_key_op *sysrq_key_ta
1534 NULL, /* v */
1535 &sysrq_showstate_blocked_op, /* w */ 1432 &sysrq_showstate_blocked_op, /* w */
1536 /* x: May be registered on ppc/powerpc for xmon */ 1433 /* x: May be registered on ppc/powerpc for xmon */
1434 /* x: May be registered on sparc64 for global PMU dump */
1537+#ifdef CONFIG_VSERVER_DEBUG 1435+#ifdef CONFIG_VSERVER_DEBUG
1538+ &sysrq_showvxinfo_op, /* x */ 1436+ &sysrq_showvxinfo_op, /* x */
1539+#else 1437+#else
@@ -1542,7 +1440,7 @@ diff -NurpP --minimal linux-3.4.57/drivers/tty/sysrq.c linux-3.4.57-vs2.3.3.9/dr
1542 /* y: May be registered on sparc64 for global register dump */ 1440 /* y: May be registered on sparc64 for global register dump */
1543 NULL, /* y */ 1441 NULL, /* y */
1544 &sysrq_ftrace_dump_op, /* z */ 1442 &sysrq_ftrace_dump_op, /* z */
1545@@ -467,6 +487,8 @@ static int sysrq_key_table_key2index(int 1443@@ -475,6 +495,8 @@ static int sysrq_key_table_key2index(int
1546 retval = key - '0'; 1444 retval = key - '0';
1547 else if ((key >= 'a') && (key <= 'z')) 1445 else if ((key >= 'a') && (key <= 'z'))
1548 retval = key + 10 - 'a'; 1446 retval = key + 10 - 'a';
@@ -1551,9 +1449,9 @@ diff -NurpP --minimal linux-3.4.57/drivers/tty/sysrq.c linux-3.4.57-vs2.3.3.9/dr
1551 else 1449 else
1552 retval = -1; 1450 retval = -1;
1553 return retval; 1451 return retval;
1554diff -NurpP --minimal linux-3.4.57/drivers/tty/tty_io.c linux-3.4.57-vs2.3.3.9/drivers/tty/tty_io.c 1452diff -NurpP --minimal linux-3.10.17/drivers/tty/tty_io.c linux-3.10.17-vs2.3.6.6/drivers/tty/tty_io.c
1555--- linux-3.4.57/drivers/tty/tty_io.c 2013-08-13 14:13:26.000000000 +0000 1453--- linux-3.10.17/drivers/tty/tty_io.c 2013-10-25 15:17:41.000000000 +0000
1556+++ linux-3.4.57-vs2.3.3.9/drivers/tty/tty_io.c 2013-07-14 13:38:33.000000000 +0000 1454+++ linux-3.10.17-vs2.3.6.6/drivers/tty/tty_io.c 2013-10-09 17:37:22.000000000 +0000
1557@@ -104,6 +104,7 @@ 1455@@ -104,6 +104,7 @@
1558 1456
1559 #include <linux/kmod.h> 1457 #include <linux/kmod.h>
@@ -1562,7 +1460,7 @@ diff -NurpP --minimal linux-3.4.57/drivers/tty/tty_io.c linux-3.4.57-vs2.3.3.9/d
1562 1460
1563 #undef TTY_DEBUG_HANGUP 1461 #undef TTY_DEBUG_HANGUP
1564 1462
1565@@ -2128,7 +2129,8 @@ static int tiocsti(struct tty_struct *tt 1463@@ -2213,7 +2214,8 @@ static int tiocsti(struct tty_struct *tt
1566 char ch, mbz = 0; 1464 char ch, mbz = 0;
1567 struct tty_ldisc *ld; 1465 struct tty_ldisc *ld;
1568 1466
@@ -1572,7 +1470,7 @@ diff -NurpP --minimal linux-3.4.57/drivers/tty/tty_io.c linux-3.4.57-vs2.3.3.9/d
1572 return -EPERM; 1470 return -EPERM;
1573 if (get_user(ch, p)) 1471 if (get_user(ch, p))
1574 return -EFAULT; 1472 return -EFAULT;
1575@@ -2416,6 +2418,7 @@ static int tiocspgrp(struct tty_struct * 1473@@ -2501,6 +2503,7 @@ static int tiocspgrp(struct tty_struct *
1576 return -ENOTTY; 1474 return -ENOTTY;
1577 if (get_user(pgrp_nr, p)) 1475 if (get_user(pgrp_nr, p))
1578 return -EFAULT; 1476 return -EFAULT;
@@ -1580,20 +1478,20 @@ diff -NurpP --minimal linux-3.4.57/drivers/tty/tty_io.c linux-3.4.57-vs2.3.3.9/d
1580 if (pgrp_nr < 0) 1478 if (pgrp_nr < 0)
1581 return -EINVAL; 1479 return -EINVAL;
1582 rcu_read_lock(); 1480 rcu_read_lock();
1583diff -NurpP --minimal linux-3.4.57/fs/attr.c linux-3.4.57-vs2.3.3.9/fs/attr.c 1481diff -NurpP --minimal linux-3.10.17/fs/attr.c linux-3.10.17-vs2.3.6.6/fs/attr.c
1584--- linux-3.4.57/fs/attr.c 2013-08-13 14:13:31.000000000 +0000 1482--- linux-3.10.17/fs/attr.c 2013-02-19 13:58:46.000000000 +0000
1585+++ linux-3.4.57-vs2.3.3.9/fs/attr.c 2012-06-28 14:45:07.000000000 +0000 1483+++ linux-3.10.17-vs2.3.6.6/fs/attr.c 2013-08-22 20:29:59.000000000 +0000
1586@@ -14,6 +14,9 @@ 1484@@ -15,6 +15,9 @@
1587 #include <linux/fcntl.h>
1588 #include <linux/security.h> 1485 #include <linux/security.h>
1589 #include <linux/evm.h> 1486 #include <linux/evm.h>
1487 #include <linux/ima.h>
1590+#include <linux/proc_fs.h> 1488+#include <linux/proc_fs.h>
1591+#include <linux/devpts_fs.h> 1489+#include <linux/devpts_fs.h>
1592+#include <linux/vs_tag.h> 1490+#include <linux/vs_tag.h>
1593 1491
1594 /** 1492 /**
1595 * inode_change_ok - check if attribute changes to an inode are allowed 1493 * inode_change_ok - check if attribute changes to an inode are allowed
1596@@ -74,6 +77,10 @@ int inode_change_ok(const struct inode * 1494@@ -77,6 +80,10 @@ int inode_change_ok(const struct inode *
1597 return -EPERM; 1495 return -EPERM;
1598 } 1496 }
1599 1497
@@ -1604,7 +1502,7 @@ diff -NurpP --minimal linux-3.4.57/fs/attr.c linux-3.4.57-vs2.3.3.9/fs/attr.c
1604 return 0; 1502 return 0;
1605 } 1503 }
1606 EXPORT_SYMBOL(inode_change_ok); 1504 EXPORT_SYMBOL(inode_change_ok);
1607@@ -144,6 +151,8 @@ void setattr_copy(struct inode *inode, c 1505@@ -147,6 +154,8 @@ void setattr_copy(struct inode *inode, c
1608 inode->i_uid = attr->ia_uid; 1506 inode->i_uid = attr->ia_uid;
1609 if (ia_valid & ATTR_GID) 1507 if (ia_valid & ATTR_GID)
1610 inode->i_gid = attr->ia_gid; 1508 inode->i_gid = attr->ia_gid;
@@ -1613,9 +1511,9 @@ diff -NurpP --minimal linux-3.4.57/fs/attr.c linux-3.4.57-vs2.3.3.9/fs/attr.c
1613 if (ia_valid & ATTR_ATIME) 1511 if (ia_valid & ATTR_ATIME)
1614 inode->i_atime = timespec_trunc(attr->ia_atime, 1512 inode->i_atime = timespec_trunc(attr->ia_atime,
1615 inode->i_sb->s_time_gran); 1513 inode->i_sb->s_time_gran);
1616@@ -171,7 +180,8 @@ int notify_change(struct dentry * dentry 1514@@ -177,7 +186,8 @@ int notify_change(struct dentry * dentry
1617 struct timespec now; 1515
1618 unsigned int ia_valid = attr->ia_valid; 1516 WARN_ON_ONCE(!mutex_is_locked(&inode->i_mutex));
1619 1517
1620- if (ia_valid & (ATTR_MODE | ATTR_UID | ATTR_GID | ATTR_TIMES_SET)) { 1518- if (ia_valid & (ATTR_MODE | ATTR_UID | ATTR_GID | ATTR_TIMES_SET)) {
1621+ if (ia_valid & (ATTR_MODE | ATTR_UID | ATTR_GID | 1519+ if (ia_valid & (ATTR_MODE | ATTR_UID | ATTR_GID |
@@ -1623,18 +1521,18 @@ diff -NurpP --minimal linux-3.4.57/fs/attr.c linux-3.4.57-vs2.3.3.9/fs/attr.c
1623 if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) 1521 if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
1624 return -EPERM; 1522 return -EPERM;
1625 } 1523 }
1626diff -NurpP --minimal linux-3.4.57/fs/block_dev.c linux-3.4.57-vs2.3.3.9/fs/block_dev.c 1524diff -NurpP --minimal linux-3.10.17/fs/block_dev.c linux-3.10.17-vs2.3.6.6/fs/block_dev.c
1627--- linux-3.4.57/fs/block_dev.c 2013-08-13 14:13:31.000000000 +0000 1525--- linux-3.10.17/fs/block_dev.c 2013-10-25 15:17:42.000000000 +0000
1628+++ linux-3.4.57-vs2.3.3.9/fs/block_dev.c 2013-08-13 17:07:36.000000000 +0000 1526+++ linux-3.10.17-vs2.3.6.6/fs/block_dev.c 2013-08-22 21:20:35.000000000 +0000
1629@@ -27,6 +27,7 @@ 1527@@ -28,6 +28,7 @@
1630 #include <linux/namei.h>
1631 #include <linux/log2.h> 1528 #include <linux/log2.h>
1632 #include <linux/cleancache.h> 1529 #include <linux/cleancache.h>
1530 #include <linux/aio.h>
1633+#include <linux/vs_device.h> 1531+#include <linux/vs_device.h>
1634 #include <asm/uaccess.h> 1532 #include <asm/uaccess.h>
1635 #include "internal.h" 1533 #include "internal.h"
1636 1534
1637@@ -588,6 +589,7 @@ struct block_device *bdget(dev_t dev) 1535@@ -536,6 +537,7 @@ struct block_device *bdget(dev_t dev)
1638 bdev->bd_invalidated = 0; 1536 bdev->bd_invalidated = 0;
1639 inode->i_mode = S_IFBLK; 1537 inode->i_mode = S_IFBLK;
1640 inode->i_rdev = dev; 1538 inode->i_rdev = dev;
@@ -1642,7 +1540,7 @@ diff -NurpP --minimal linux-3.4.57/fs/block_dev.c linux-3.4.57-vs2.3.3.9/fs/bloc
1642 inode->i_bdev = bdev; 1540 inode->i_bdev = bdev;
1643 inode->i_data.a_ops = &def_blk_aops; 1541 inode->i_data.a_ops = &def_blk_aops;
1644 mapping_set_gfp_mask(&inode->i_data, GFP_USER); 1542 mapping_set_gfp_mask(&inode->i_data, GFP_USER);
1645@@ -635,6 +637,11 @@ EXPORT_SYMBOL(bdput); 1543@@ -583,6 +585,11 @@ EXPORT_SYMBOL(bdput);
1646 static struct block_device *bd_acquire(struct inode *inode) 1544 static struct block_device *bd_acquire(struct inode *inode)
1647 { 1545 {
1648 struct block_device *bdev; 1546 struct block_device *bdev;
@@ -1654,7 +1552,7 @@ diff -NurpP --minimal linux-3.4.57/fs/block_dev.c linux-3.4.57-vs2.3.3.9/fs/bloc
1654 1552
1655 spin_lock(&bdev_lock); 1553 spin_lock(&bdev_lock);
1656 bdev = inode->i_bdev; 1554 bdev = inode->i_bdev;
1657@@ -645,7 +652,7 @@ static struct block_device *bd_acquire(s 1555@@ -593,7 +600,7 @@ static struct block_device *bd_acquire(s
1658 } 1556 }
1659 spin_unlock(&bdev_lock); 1557 spin_unlock(&bdev_lock);
1660 1558
@@ -1663,10 +1561,10 @@ diff -NurpP --minimal linux-3.4.57/fs/block_dev.c linux-3.4.57-vs2.3.3.9/fs/bloc
1663 if (bdev) { 1561 if (bdev) {
1664 spin_lock(&bdev_lock); 1562 spin_lock(&bdev_lock);
1665 if (!inode->i_bdev) { 1563 if (!inode->i_bdev) {
1666diff -NurpP --minimal linux-3.4.57/fs/btrfs/ctree.h linux-3.4.57-vs2.3.3.9/fs/btrfs/ctree.h 1564diff -NurpP --minimal linux-3.10.17/fs/btrfs/ctree.h linux-3.10.17-vs2.3.6.6/fs/btrfs/ctree.h
1667--- linux-3.4.57/fs/btrfs/ctree.h 2012-05-21 16:07:18.000000000 +0000 1565--- linux-3.10.17/fs/btrfs/ctree.h 2013-07-14 17:01:26.000000000 +0000
1668+++ linux-3.4.57-vs2.3.3.9/fs/btrfs/ctree.h 2012-05-21 16:15:04.000000000 +0000 1566+++ linux-3.10.17-vs2.3.6.6/fs/btrfs/ctree.h 2013-08-22 20:29:59.000000000 +0000
1669@@ -668,11 +668,14 @@ struct btrfs_inode_item { 1567@@ -707,11 +707,14 @@ struct btrfs_inode_item {
1670 /* modification sequence number for NFS */ 1568 /* modification sequence number for NFS */
1671 __le64 sequence; 1569 __le64 sequence;
1672 1570
@@ -1682,7 +1580,7 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/ctree.h linux-3.4.57-vs2.3.3.9/fs/bt
1682 struct btrfs_timespec atime; 1580 struct btrfs_timespec atime;
1683 struct btrfs_timespec ctime; 1581 struct btrfs_timespec ctime;
1684 struct btrfs_timespec mtime; 1582 struct btrfs_timespec mtime;
1685@@ -1542,6 +1545,8 @@ struct btrfs_ioctl_defrag_range_args { 1583@@ -1928,6 +1931,8 @@ struct btrfs_ioctl_defrag_range_args {
1686 #define BTRFS_MOUNT_CHECK_INTEGRITY_INCLUDING_EXTENT_DATA (1 << 21) 1584 #define BTRFS_MOUNT_CHECK_INTEGRITY_INCLUDING_EXTENT_DATA (1 << 21)
1687 #define BTRFS_MOUNT_PANIC_ON_FATAL_ERROR (1 << 22) 1585 #define BTRFS_MOUNT_PANIC_ON_FATAL_ERROR (1 << 22)
1688 1586
@@ -1690,8 +1588,8 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/ctree.h linux-3.4.57-vs2.3.3.9/fs/bt
1690+ 1588+
1691 #define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt) 1589 #define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt)
1692 #define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt) 1590 #define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt)
1693 #define btrfs_test_opt(root, opt) ((root)->fs_info->mount_opt & \ 1591 #define btrfs_raw_test_opt(o, opt) ((o) & BTRFS_MOUNT_##opt)
1694@@ -1762,6 +1767,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st 1592@@ -2197,6 +2202,7 @@ BTRFS_SETGET_FUNCS(inode_block_group, st
1695 BTRFS_SETGET_FUNCS(inode_nlink, struct btrfs_inode_item, nlink, 32); 1593 BTRFS_SETGET_FUNCS(inode_nlink, struct btrfs_inode_item, nlink, 32);
1696 BTRFS_SETGET_FUNCS(inode_uid, struct btrfs_inode_item, uid, 32); 1594 BTRFS_SETGET_FUNCS(inode_uid, struct btrfs_inode_item, uid, 32);
1697 BTRFS_SETGET_FUNCS(inode_gid, struct btrfs_inode_item, gid, 32); 1595 BTRFS_SETGET_FUNCS(inode_gid, struct btrfs_inode_item, gid, 32);
@@ -1699,7 +1597,7 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/ctree.h linux-3.4.57-vs2.3.3.9/fs/bt
1699 BTRFS_SETGET_FUNCS(inode_mode, struct btrfs_inode_item, mode, 32); 1597 BTRFS_SETGET_FUNCS(inode_mode, struct btrfs_inode_item, mode, 32);
1700 BTRFS_SETGET_FUNCS(inode_rdev, struct btrfs_inode_item, rdev, 64); 1598 BTRFS_SETGET_FUNCS(inode_rdev, struct btrfs_inode_item, rdev, 64);
1701 BTRFS_SETGET_FUNCS(inode_flags, struct btrfs_inode_item, flags, 64); 1599 BTRFS_SETGET_FUNCS(inode_flags, struct btrfs_inode_item, flags, 64);
1702@@ -1815,6 +1821,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct 1600@@ -2250,6 +2256,10 @@ BTRFS_SETGET_FUNCS(extent_flags, struct
1703 1601
1704 BTRFS_SETGET_FUNCS(extent_refs_v0, struct btrfs_extent_item_v0, refs, 32); 1602 BTRFS_SETGET_FUNCS(extent_refs_v0, struct btrfs_extent_item_v0, refs, 32);
1705 1603
@@ -1710,7 +1608,7 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/ctree.h linux-3.4.57-vs2.3.3.9/fs/bt
1710 1608
1711 BTRFS_SETGET_FUNCS(tree_block_level, struct btrfs_tree_block_info, level, 8); 1609 BTRFS_SETGET_FUNCS(tree_block_level, struct btrfs_tree_block_info, level, 8);
1712 1610
1713@@ -2959,6 +2969,7 @@ extern const struct dentry_operations bt 1611@@ -3578,6 +3588,7 @@ extern const struct dentry_operations bt
1714 long btrfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg); 1612 long btrfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
1715 void btrfs_update_iflags(struct inode *inode); 1613 void btrfs_update_iflags(struct inode *inode);
1716 void btrfs_inherit_iflags(struct inode *inode, struct inode *dir); 1614 void btrfs_inherit_iflags(struct inode *inode, struct inode *dir);
@@ -1718,10 +1616,10 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/ctree.h linux-3.4.57-vs2.3.3.9/fs/bt
1718 int btrfs_defrag_file(struct inode *inode, struct file *file, 1616 int btrfs_defrag_file(struct inode *inode, struct file *file,
1719 struct btrfs_ioctl_defrag_range_args *range, 1617 struct btrfs_ioctl_defrag_range_args *range,
1720 u64 newer_than, unsigned long max_pages); 1618 u64 newer_than, unsigned long max_pages);
1721diff -NurpP --minimal linux-3.4.57/fs/btrfs/disk-io.c linux-3.4.57-vs2.3.3.9/fs/btrfs/disk-io.c 1619diff -NurpP --minimal linux-3.10.17/fs/btrfs/disk-io.c linux-3.10.17-vs2.3.6.6/fs/btrfs/disk-io.c
1722--- linux-3.4.57/fs/btrfs/disk-io.c 2012-05-21 16:07:18.000000000 +0000 1620--- linux-3.10.17/fs/btrfs/disk-io.c 2013-07-14 17:01:26.000000000 +0000
1723+++ linux-3.4.57-vs2.3.3.9/fs/btrfs/disk-io.c 2012-05-21 16:15:04.000000000 +0000 1621+++ linux-3.10.17-vs2.3.6.6/fs/btrfs/disk-io.c 2013-08-22 20:29:59.000000000 +0000
1724@@ -2083,6 +2083,9 @@ int open_ctree(struct super_block *sb, 1622@@ -2360,6 +2360,9 @@ int open_ctree(struct super_block *sb,
1725 goto fail_alloc; 1623 goto fail_alloc;
1726 } 1624 }
1727 1625
@@ -1731,60 +1629,66 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/disk-io.c linux-3.4.57-vs2.3.3.9/fs/
1731 features = btrfs_super_incompat_flags(disk_super) & 1629 features = btrfs_super_incompat_flags(disk_super) &
1732 ~BTRFS_FEATURE_INCOMPAT_SUPP; 1630 ~BTRFS_FEATURE_INCOMPAT_SUPP;
1733 if (features) { 1631 if (features) {
1734diff -NurpP --minimal linux-3.4.57/fs/btrfs/inode.c linux-3.4.57-vs2.3.3.9/fs/btrfs/inode.c 1632diff -NurpP --minimal linux-3.10.17/fs/btrfs/inode.c linux-3.10.17-vs2.3.6.6/fs/btrfs/inode.c
1735--- linux-3.4.57/fs/btrfs/inode.c 2013-08-13 14:13:31.000000000 +0000 1633--- linux-3.10.17/fs/btrfs/inode.c 2013-10-25 15:17:42.000000000 +0000
1736+++ linux-3.4.57-vs2.3.3.9/fs/btrfs/inode.c 2013-07-14 13:38:34.000000000 +0000 1634+++ linux-3.10.17-vs2.3.6.6/fs/btrfs/inode.c 2013-10-26 18:03:16.000000000 +0000
1737@@ -39,6 +39,7 @@ 1635@@ -42,6 +42,7 @@
1738 #include <linux/slab.h>
1739 #include <linux/ratelimit.h>
1740 #include <linux/mount.h> 1636 #include <linux/mount.h>
1637 #include <linux/btrfs.h>
1638 #include <linux/blkdev.h>
1741+#include <linux/vs_tag.h> 1639+#include <linux/vs_tag.h>
1742 #include "compat.h" 1640 #include "compat.h"
1743 #include "ctree.h" 1641 #include "ctree.h"
1744 #include "disk-io.h" 1642 #include "disk-io.h"
1745@@ -2482,6 +2483,8 @@ static void btrfs_read_locked_inode(stru 1643@@ -3327,6 +3328,9 @@ static void btrfs_read_locked_inode(stru
1746 struct btrfs_key location; 1644 struct btrfs_key location;
1747 int maybe_acls; 1645 int maybe_acls;
1748 u32 rdev; 1646 u32 rdev;
1749+ uid_t uid; 1647+ kuid_t kuid;
1750+ gid_t gid; 1648+ kgid_t kgid;
1649+ ktag_t ktag;
1751 int ret; 1650 int ret;
1752 bool filled = false; 1651 bool filled = false;
1753 1652
1754@@ -2509,8 +2512,13 @@ static void btrfs_read_locked_inode(stru 1653@@ -3354,8 +3358,14 @@ static void btrfs_read_locked_inode(stru
1755 struct btrfs_inode_item); 1654 struct btrfs_inode_item);
1756 inode->i_mode = btrfs_inode_mode(leaf, inode_item); 1655 inode->i_mode = btrfs_inode_mode(leaf, inode_item);
1757 set_nlink(inode, btrfs_inode_nlink(leaf, inode_item)); 1656 set_nlink(inode, btrfs_inode_nlink(leaf, inode_item));
1758- inode->i_uid = btrfs_inode_uid(leaf, inode_item); 1657- i_uid_write(inode, btrfs_inode_uid(leaf, inode_item));
1759- inode->i_gid = btrfs_inode_gid(leaf, inode_item); 1658- i_gid_write(inode, btrfs_inode_gid(leaf, inode_item));
1760+ 1659+
1761+ uid = btrfs_inode_uid(leaf, inode_item); 1660+ kuid = make_kuid(&init_user_ns, btrfs_inode_uid(leaf, inode_item));
1762+ gid = btrfs_inode_gid(leaf, inode_item); 1661+ kgid = make_kgid(&init_user_ns, btrfs_inode_gid(leaf, inode_item));
1763+ inode->i_uid = INOTAG_UID(DX_TAG(inode), uid, gid); 1662+ ktag = make_ktag(&init_user_ns, btrfs_inode_tag(leaf, inode_item));
1764+ inode->i_gid = INOTAG_GID(DX_TAG(inode), uid, gid); 1663+
1765+ inode->i_tag = INOTAG_TAG(DX_TAG(inode), uid, gid, 1664+ inode->i_uid = INOTAG_KUID(DX_TAG(inode), kuid, kgid);
1766+ btrfs_inode_tag(leaf, inode_item)); 1665+ inode->i_gid = INOTAG_KGID(DX_TAG(inode), kuid, kgid);
1666+ inode->i_tag = INOTAG_KTAG(DX_TAG(inode), kuid, kgid, ktag);
1767 btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item)); 1667 btrfs_i_size_write(inode, btrfs_inode_size(leaf, inode_item));
1768 1668
1769 tspec = btrfs_inode_atime(inode_item); 1669 tspec = btrfs_inode_atime(inode_item);
1770@@ -2588,8 +2596,14 @@ static void fill_inode_item(struct btrfs 1670@@ -3446,11 +3456,18 @@ static void fill_inode_item(struct btrfs
1771 struct btrfs_inode_item *item,
1772 struct inode *inode) 1671 struct inode *inode)
1773 { 1672 {
1774- btrfs_set_inode_uid(leaf, item, inode->i_uid); 1673 struct btrfs_map_token token;
1775- btrfs_set_inode_gid(leaf, item, inode->i_gid); 1674+ uid_t uid = from_kuid(&init_user_ns,
1776+ uid_t uid = TAGINO_UID(DX_TAG(inode), inode->i_uid, inode->i_tag); 1675+ TAGINO_KUID(DX_TAG(inode), inode->i_uid, inode->i_tag));
1777+ gid_t gid = TAGINO_GID(DX_TAG(inode), inode->i_gid, inode->i_tag); 1676+ gid_t gid = from_kgid(&init_user_ns,
1778+ 1677+ TAGINO_KGID(DX_TAG(inode), inode->i_gid, inode->i_tag));
1779+ btrfs_set_inode_uid(leaf, item, uid); 1678
1780+ btrfs_set_inode_gid(leaf, item, gid); 1679 btrfs_init_map_token(&token);
1680
1681- btrfs_set_token_inode_uid(leaf, item, i_uid_read(inode), &token);
1682- btrfs_set_token_inode_gid(leaf, item, i_gid_read(inode), &token);
1683+ btrfs_set_token_inode_uid(leaf, item, uid, &token);
1684+ btrfs_set_token_inode_gid(leaf, item, gid, &token);
1781+#ifdef CONFIG_TAGGING_INTERN 1685+#ifdef CONFIG_TAGGING_INTERN
1782+ btrfs_set_inode_tag(leaf, item, inode->i_tag); 1686+ btrfs_set_token_inode_tag(leaf, item, i_tag_read(inode), &token);
1783+#endif 1687+#endif
1784 btrfs_set_inode_size(leaf, item, BTRFS_I(inode)->disk_i_size); 1688 btrfs_set_token_inode_size(leaf, item, BTRFS_I(inode)->disk_i_size,
1785 btrfs_set_inode_mode(leaf, item, inode->i_mode); 1689 &token);
1786 btrfs_set_inode_nlink(leaf, item, inode->i_nlink); 1690 btrfs_set_token_inode_mode(leaf, item, inode->i_mode, &token);
1787@@ -7590,11 +7604,13 @@ static const struct inode_operations btr 1691@@ -8720,11 +8737,13 @@ static const struct inode_operations btr
1788 .listxattr = btrfs_listxattr, 1692 .listxattr = btrfs_listxattr,
1789 .removexattr = btrfs_removexattr, 1693 .removexattr = btrfs_removexattr,
1790 .permission = btrfs_permission, 1694 .permission = btrfs_permission,
@@ -1798,10 +1702,10 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/inode.c linux-3.4.57-vs2.3.3.9/fs/bt
1798 .get_acl = btrfs_get_acl, 1702 .get_acl = btrfs_get_acl,
1799 }; 1703 };
1800 1704
1801diff -NurpP --minimal linux-3.4.57/fs/btrfs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/btrfs/ioctl.c 1705diff -NurpP --minimal linux-3.10.17/fs/btrfs/ioctl.c linux-3.10.17-vs2.3.6.6/fs/btrfs/ioctl.c
1802--- linux-3.4.57/fs/btrfs/ioctl.c 2013-08-13 14:13:31.000000000 +0000 1706--- linux-3.10.17/fs/btrfs/ioctl.c 2013-10-25 15:17:42.000000000 +0000
1803+++ linux-3.4.57-vs2.3.3.9/fs/btrfs/ioctl.c 2013-07-14 13:38:34.000000000 +0000 1707+++ linux-3.10.17-vs2.3.6.6/fs/btrfs/ioctl.c 2013-10-09 17:37:22.000000000 +0000
1804@@ -71,10 +71,13 @@ static unsigned int btrfs_flags_to_ioctl 1708@@ -75,10 +75,13 @@ static unsigned int btrfs_flags_to_ioctl
1805 { 1709 {
1806 unsigned int iflags = 0; 1710 unsigned int iflags = 0;
1807 1711
@@ -1817,7 +1721,7 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/bt
1817 if (flags & BTRFS_INODE_APPEND) 1721 if (flags & BTRFS_INODE_APPEND)
1818 iflags |= FS_APPEND_FL; 1722 iflags |= FS_APPEND_FL;
1819 if (flags & BTRFS_INODE_NODUMP) 1723 if (flags & BTRFS_INODE_NODUMP)
1820@@ -91,28 +94,78 @@ static unsigned int btrfs_flags_to_ioctl 1724@@ -95,28 +98,78 @@ static unsigned int btrfs_flags_to_ioctl
1821 else if (flags & BTRFS_INODE_NOCOMPRESS) 1725 else if (flags & BTRFS_INODE_NOCOMPRESS)
1822 iflags |= FS_NOCOMP_FL; 1726 iflags |= FS_NOCOMP_FL;
1823 1727
@@ -1900,7 +1804,7 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/bt
1900 } 1804 }
1901 1805
1902 /* 1806 /*
1903@@ -128,6 +181,7 @@ void btrfs_inherit_iflags(struct inode * 1807@@ -132,6 +185,7 @@ void btrfs_inherit_iflags(struct inode *
1904 return; 1808 return;
1905 1809
1906 flags = BTRFS_I(dir)->flags; 1810 flags = BTRFS_I(dir)->flags;
@@ -1908,7 +1812,7 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/bt
1908 1812
1909 if (flags & BTRFS_INODE_NOCOMPRESS) { 1813 if (flags & BTRFS_INODE_NOCOMPRESS) {
1910 BTRFS_I(inode)->flags &= ~BTRFS_INODE_COMPRESS; 1814 BTRFS_I(inode)->flags &= ~BTRFS_INODE_COMPRESS;
1911@@ -143,6 +197,30 @@ void btrfs_inherit_iflags(struct inode * 1815@@ -150,6 +204,30 @@ void btrfs_inherit_iflags(struct inode *
1912 btrfs_update_iflags(inode); 1816 btrfs_update_iflags(inode);
1913 } 1817 }
1914 1818
@@ -1938,8 +1842,8 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/bt
1938+ 1842+
1939 static int btrfs_ioctl_getflags(struct file *file, void __user *arg) 1843 static int btrfs_ioctl_getflags(struct file *file, void __user *arg)
1940 { 1844 {
1941 struct btrfs_inode *ip = BTRFS_I(file->f_path.dentry->d_inode); 1845 struct btrfs_inode *ip = BTRFS_I(file_inode(file));
1942@@ -199,7 +277,8 @@ static int btrfs_ioctl_setflags(struct f 1846@@ -212,21 +290,27 @@ static int btrfs_ioctl_setflags(struct f
1943 1847
1944 flags = btrfs_mask_flags(inode->i_mode, flags); 1848 flags = btrfs_mask_flags(inode->i_mode, flags);
1945 oldflags = btrfs_flags_to_ioctl(ip->flags); 1849 oldflags = btrfs_flags_to_ioctl(ip->flags);
@@ -1949,9 +1853,8 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/bt
1949 if (!capable(CAP_LINUX_IMMUTABLE)) { 1853 if (!capable(CAP_LINUX_IMMUTABLE)) {
1950 ret = -EPERM; 1854 ret = -EPERM;
1951 goto out_unlock; 1855 goto out_unlock;
1952@@ -210,14 +289,19 @@ static int btrfs_ioctl_setflags(struct f 1856 }
1953 if (ret) 1857 }
1954 goto out_unlock;
1955 1858
1956- if (flags & FS_SYNC_FL) 1859- if (flags & FS_SYNC_FL)
1957- ip->flags |= BTRFS_INODE_SYNC; 1860- ip->flags |= BTRFS_INODE_SYNC;
@@ -1973,10 +1876,10 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/bt
1973 if (flags & FS_APPEND_FL) 1876 if (flags & FS_APPEND_FL)
1974 ip->flags |= BTRFS_INODE_APPEND; 1877 ip->flags |= BTRFS_INODE_APPEND;
1975 else 1878 else
1976diff -NurpP --minimal linux-3.4.57/fs/btrfs/super.c linux-3.4.57-vs2.3.3.9/fs/btrfs/super.c 1879diff -NurpP --minimal linux-3.10.17/fs/btrfs/super.c linux-3.10.17-vs2.3.6.6/fs/btrfs/super.c
1977--- linux-3.4.57/fs/btrfs/super.c 2012-05-21 16:07:19.000000000 +0000 1880--- linux-3.10.17/fs/btrfs/super.c 2013-07-14 17:01:26.000000000 +0000
1978+++ linux-3.4.57-vs2.3.3.9/fs/btrfs/super.c 2012-05-21 16:15:04.000000000 +0000 1881+++ linux-3.10.17-vs2.3.6.6/fs/btrfs/super.c 2013-08-22 20:29:59.000000000 +0000
1979@@ -279,7 +279,7 @@ enum { 1882@@ -319,7 +319,7 @@ enum {
1980 Opt_no_space_cache, Opt_recovery, Opt_skip_balance, 1883 Opt_no_space_cache, Opt_recovery, Opt_skip_balance,
1981 Opt_check_integrity, Opt_check_integrity_including_extent_data, 1884 Opt_check_integrity, Opt_check_integrity_including_extent_data,
1982 Opt_check_integrity_print_mask, Opt_fatal_errors, 1885 Opt_check_integrity_print_mask, Opt_fatal_errors,
@@ -1985,7 +1888,7 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/super.c linux-3.4.57-vs2.3.3.9/fs/bt
1985 }; 1888 };
1986 1889
1987 static match_table_t tokens = { 1890 static match_table_t tokens = {
1988@@ -319,6 +319,9 @@ static match_table_t tokens = { 1891@@ -359,6 +359,9 @@ static match_table_t tokens = {
1989 {Opt_check_integrity_including_extent_data, "check_int_data"}, 1892 {Opt_check_integrity_including_extent_data, "check_int_data"},
1990 {Opt_check_integrity_print_mask, "check_int_print_mask=%d"}, 1893 {Opt_check_integrity_print_mask, "check_int_print_mask=%d"},
1991 {Opt_fatal_errors, "fatal_errors=%s"}, 1894 {Opt_fatal_errors, "fatal_errors=%s"},
@@ -1995,7 +1898,7 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/super.c linux-3.4.57-vs2.3.3.9/fs/bt
1995 {Opt_err, NULL}, 1898 {Opt_err, NULL},
1996 }; 1899 };
1997 1900
1998@@ -564,6 +567,22 @@ int btrfs_parse_options(struct btrfs_roo 1901@@ -624,6 +627,22 @@ int btrfs_parse_options(struct btrfs_roo
1999 goto out; 1902 goto out;
2000 } 1903 }
2001 break; 1904 break;
@@ -2018,9 +1921,9 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/super.c linux-3.4.57-vs2.3.3.9/fs/bt
2018 case Opt_err: 1921 case Opt_err:
2019 printk(KERN_INFO "btrfs: unrecognized mount option " 1922 printk(KERN_INFO "btrfs: unrecognized mount option "
2020 "'%s'\n", p); 1923 "'%s'\n", p);
2021@@ -1137,6 +1156,12 @@ static int btrfs_remount(struct super_bl 1924@@ -1251,6 +1270,12 @@ static int btrfs_remount(struct super_bl
2022 goto restore; 1925 btrfs_resize_thread_pool(fs_info,
2023 } 1926 fs_info->thread_pool_size, old_thread_pool_size);
2024 1927
2025+ if (btrfs_test_opt(root, TAGGED) && !(sb->s_flags & MS_TAGGED)) { 1928+ if (btrfs_test_opt(root, TAGGED) && !(sb->s_flags & MS_TAGGED)) {
2026+ printk("btrfs: %s: tagging not permitted on remount.\n", 1929+ printk("btrfs: %s: tagging not permitted on remount.\n",
@@ -2029,11 +1932,11 @@ diff -NurpP --minimal linux-3.4.57/fs/btrfs/super.c linux-3.4.57-vs2.3.3.9/fs/bt
2029+ } 1932+ }
2030+ 1933+
2031 if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY)) 1934 if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY))
2032 return 0; 1935 goto out;
2033 1936
2034diff -NurpP --minimal linux-3.4.57/fs/char_dev.c linux-3.4.57-vs2.3.3.9/fs/char_dev.c 1937diff -NurpP --minimal linux-3.10.17/fs/char_dev.c linux-3.10.17-vs2.3.6.6/fs/char_dev.c
2035--- linux-3.4.57/fs/char_dev.c 2012-03-19 18:47:25.000000000 +0000 1938--- linux-3.10.17/fs/char_dev.c 2012-12-11 03:30:57.000000000 +0000
2036+++ linux-3.4.57-vs2.3.3.9/fs/char_dev.c 2012-05-21 16:15:04.000000000 +0000 1939+++ linux-3.10.17-vs2.3.6.6/fs/char_dev.c 2013-08-22 20:29:59.000000000 +0000
2037@@ -21,6 +21,8 @@ 1940@@ -21,6 +21,8 @@
2038 #include <linux/mutex.h> 1941 #include <linux/mutex.h>
2039 #include <linux/backing-dev.h> 1942 #include <linux/backing-dev.h>
@@ -2066,9 +1969,9 @@ diff -NurpP --minimal linux-3.4.57/fs/char_dev.c linux-3.4.57-vs2.3.3.9/fs/char_
2066 if (!kobj) 1969 if (!kobj)
2067 return -ENXIO; 1970 return -ENXIO;
2068 new = container_of(kobj, struct cdev, kobj); 1971 new = container_of(kobj, struct cdev, kobj);
2069diff -NurpP --minimal linux-3.4.57/fs/dcache.c linux-3.4.57-vs2.3.3.9/fs/dcache.c 1972diff -NurpP --minimal linux-3.10.17/fs/dcache.c linux-3.10.17-vs2.3.6.6/fs/dcache.c
2070--- linux-3.4.57/fs/dcache.c 2013-08-13 14:13:32.000000000 +0000 1973--- linux-3.10.17/fs/dcache.c 2013-10-25 15:17:42.000000000 +0000
2071+++ linux-3.4.57-vs2.3.3.9/fs/dcache.c 2013-07-14 13:38:34.000000000 +0000 1974+++ linux-3.10.17-vs2.3.6.6/fs/dcache.c 2013-10-26 18:03:16.000000000 +0000
2072@@ -37,6 +37,7 @@ 1975@@ -37,6 +37,7 @@
2073 #include <linux/rculist_bl.h> 1976 #include <linux/rculist_bl.h>
2074 #include <linux/prefetch.h> 1977 #include <linux/prefetch.h>
@@ -2077,7 +1980,7 @@ diff -NurpP --minimal linux-3.4.57/fs/dcache.c linux-3.4.57-vs2.3.3.9/fs/dcache.
2077 #include "internal.h" 1980 #include "internal.h"
2078 #include "mount.h" 1981 #include "mount.h"
2079 1982
2080@@ -601,6 +602,8 @@ int d_invalidate(struct dentry * dentry) 1983@@ -578,6 +579,8 @@ int d_invalidate(struct dentry * dentry)
2081 spin_lock(&dentry->d_lock); 1984 spin_lock(&dentry->d_lock);
2082 } 1985 }
2083 1986
@@ -2086,7 +1989,7 @@ diff -NurpP --minimal linux-3.4.57/fs/dcache.c linux-3.4.57-vs2.3.3.9/fs/dcache.
2086 /* 1989 /*
2087 * Somebody else still using it? 1990 * Somebody else still using it?
2088 * 1991 *
2089@@ -630,6 +633,7 @@ EXPORT_SYMBOL(d_invalidate); 1992@@ -607,6 +610,7 @@ EXPORT_SYMBOL(d_invalidate);
2090 static inline void __dget_dlock(struct dentry *dentry) 1993 static inline void __dget_dlock(struct dentry *dentry)
2091 { 1994 {
2092 dentry->d_count++; 1995 dentry->d_count++;
@@ -2094,7 +1997,7 @@ diff -NurpP --minimal linux-3.4.57/fs/dcache.c linux-3.4.57-vs2.3.3.9/fs/dcache.
2094 } 1997 }
2095 1998
2096 static inline void __dget(struct dentry *dentry) 1999 static inline void __dget(struct dentry *dentry)
2097@@ -1260,6 +1264,9 @@ struct dentry *__d_alloc(struct super_bl 2000@@ -1239,6 +1243,9 @@ struct dentry *__d_alloc(struct super_bl
2098 struct dentry *dentry; 2001 struct dentry *dentry;
2099 char *dname; 2002 char *dname;
2100 2003
@@ -2104,7 +2007,7 @@ diff -NurpP --minimal linux-3.4.57/fs/dcache.c linux-3.4.57-vs2.3.3.9/fs/dcache.
2104 dentry = kmem_cache_alloc(dentry_cache, GFP_KERNEL); 2007 dentry = kmem_cache_alloc(dentry_cache, GFP_KERNEL);
2105 if (!dentry) 2008 if (!dentry)
2106 return NULL; 2009 return NULL;
2107@@ -1282,6 +1289,7 @@ struct dentry *__d_alloc(struct super_bl 2010@@ -1271,6 +1278,7 @@ struct dentry *__d_alloc(struct super_bl
2108 2011
2109 dentry->d_count = 1; 2012 dentry->d_count = 1;
2110 dentry->d_flags = 0; 2013 dentry->d_flags = 0;
@@ -2112,7 +2015,7 @@ diff -NurpP --minimal linux-3.4.57/fs/dcache.c linux-3.4.57-vs2.3.3.9/fs/dcache.
2112 spin_lock_init(&dentry->d_lock); 2015 spin_lock_init(&dentry->d_lock);
2113 seqcount_init(&dentry->d_seq); 2016 seqcount_init(&dentry->d_seq);
2114 dentry->d_inode = NULL; 2017 dentry->d_inode = NULL;
2115@@ -1943,6 +1951,7 @@ struct dentry *__d_lookup(struct dentry 2018@@ -1971,6 +1979,7 @@ struct dentry *__d_lookup(const struct d
2116 } 2019 }
2117 2020
2118 dentry->d_count++; 2021 dentry->d_count++;
@@ -2120,9 +2023,9 @@ diff -NurpP --minimal linux-3.4.57/fs/dcache.c linux-3.4.57-vs2.3.3.9/fs/dcache.
2120 found = dentry; 2023 found = dentry;
2121 spin_unlock(&dentry->d_lock); 2024 spin_unlock(&dentry->d_lock);
2122 break; 2025 break;
2123diff -NurpP --minimal linux-3.4.57/fs/devpts/inode.c linux-3.4.57-vs2.3.3.9/fs/devpts/inode.c 2026diff -NurpP --minimal linux-3.10.17/fs/devpts/inode.c linux-3.10.17-vs2.3.6.6/fs/devpts/inode.c
2124--- linux-3.4.57/fs/devpts/inode.c 2012-05-21 16:07:20.000000000 +0000 2027--- linux-3.10.17/fs/devpts/inode.c 2013-05-31 13:45:23.000000000 +0000
2125+++ linux-3.4.57-vs2.3.3.9/fs/devpts/inode.c 2012-05-21 16:15:04.000000000 +0000 2028+++ linux-3.10.17-vs2.3.6.6/fs/devpts/inode.c 2013-08-22 20:29:59.000000000 +0000
2126@@ -25,6 +25,7 @@ 2029@@ -25,6 +25,7 @@
2127 #include <linux/parser.h> 2030 #include <linux/parser.h>
2128 #include <linux/fsnotify.h> 2031 #include <linux/fsnotify.h>
@@ -2140,7 +2043,7 @@ diff -NurpP --minimal linux-3.4.57/fs/devpts/inode.c linux-3.4.57-vs2.3.3.9/fs/d
2140+ int ret = -EACCES; 2043+ int ret = -EACCES;
2141+ 2044+
2142+ /* devpts is xid tagged */ 2045+ /* devpts is xid tagged */
2143+ if (vx_check((xid_t)inode->i_tag, VS_WATCH_P | VS_IDENT)) 2046+ if (vx_check((vxid_t)i_tag_read(inode), VS_WATCH_P | VS_IDENT))
2144+ ret = generic_permission(inode, mask); 2047+ ret = generic_permission(inode, mask);
2145+ return ret; 2048+ return ret;
2146+} 2049+}
@@ -2153,17 +2056,17 @@ diff -NurpP --minimal linux-3.4.57/fs/devpts/inode.c linux-3.4.57-vs2.3.3.9/fs/d
2153 /* 2056 /*
2154 * sysctl support for setting limits on the number of Unix98 ptys allocated. 2057 * sysctl support for setting limits on the number of Unix98 ptys allocated.
2155 * Otherwise one can eat up all kernel memory by opening /dev/ptmx repeatedly. 2058 * Otherwise one can eat up all kernel memory by opening /dev/ptmx repeatedly.
2156@@ -328,6 +344,34 @@ static int devpts_show_options(struct se 2059@@ -345,6 +361,34 @@ static int devpts_show_options(struct se
2157 return 0; 2060 return 0;
2158 } 2061 }
2159 2062
2160+static int devpts_filter(struct dentry *de) 2063+static int devpts_filter(struct dentry *de)
2161+{ 2064+{
2162+ xid_t xid = 0; 2065+ vxid_t xid = 0;
2163+ 2066+
2164+ /* devpts is xid tagged */ 2067+ /* devpts is xid tagged */
2165+ if (de && de->d_inode) 2068+ if (de && de->d_inode)
2166+ xid = (xid_t)de->d_inode->i_tag; 2069+ xid = (vxid_t)i_tag_read(de->d_inode);
2167+#ifdef CONFIG_VSERVER_WARN_DEVPTS 2070+#ifdef CONFIG_VSERVER_WARN_DEVPTS
2168+ else 2071+ else
2169+ vxwprintk_task(1, "devpts " VS_Q("%.*s") " without inode.", 2072+ vxwprintk_task(1, "devpts " VS_Q("%.*s") " without inode.",
@@ -2188,7 +2091,7 @@ diff -NurpP --minimal linux-3.4.57/fs/devpts/inode.c linux-3.4.57-vs2.3.3.9/fs/d
2188 static const struct super_operations devpts_sops = { 2091 static const struct super_operations devpts_sops = {
2189 .statfs = simple_statfs, 2092 .statfs = simple_statfs,
2190 .remount_fs = devpts_remount, 2093 .remount_fs = devpts_remount,
2191@@ -371,8 +415,10 @@ devpts_fill_super(struct super_block *s, 2094@@ -388,8 +432,10 @@ devpts_fill_super(struct super_block *s,
2192 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; 2095 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
2193 inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR; 2096 inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR;
2194 inode->i_op = &simple_dir_inode_operations; 2097 inode->i_op = &simple_dir_inode_operations;
@@ -2196,24 +2099,24 @@ diff -NurpP --minimal linux-3.4.57/fs/devpts/inode.c linux-3.4.57-vs2.3.3.9/fs/d
2196+ inode->i_fop = &devpts_dir_operations; 2099+ inode->i_fop = &devpts_dir_operations;
2197 set_nlink(inode, 2); 2100 set_nlink(inode, 2);
2198+ /* devpts is xid tagged */ 2101+ /* devpts is xid tagged */
2199+ inode->i_tag = (tag_t)vx_current_xid(); 2102+ i_tag_write(inode, (vtag_t)vx_current_xid());
2200 2103
2201 s->s_root = d_make_root(inode); 2104 s->s_root = d_make_root(inode);
2202 if (s->s_root) 2105 if (s->s_root)
2203@@ -564,6 +610,9 @@ int devpts_pty_new(struct inode *ptmx_in 2106@@ -592,6 +638,9 @@ struct inode *devpts_pty_new(struct inod
2204 inode->i_gid = opts->setgid ? opts->gid : current_fsgid(); 2107 inode->i_gid = opts->setgid ? opts->gid : current_fsgid();
2205 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; 2108 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
2206 init_special_inode(inode, S_IFCHR|opts->mode, device); 2109 init_special_inode(inode, S_IFCHR|opts->mode, device);
2207+ /* devpts is xid tagged */ 2110+ /* devpts is xid tagged */
2208+ inode->i_tag = (tag_t)vx_current_xid(); 2111+ i_tag_write(inode, (vtag_t)vx_current_xid());
2209+ inode->i_op = &devpts_file_inode_operations; 2112+ inode->i_op = &devpts_file_inode_operations;
2210 inode->i_private = tty; 2113 inode->i_private = priv;
2211 tty->driver_data = inode;
2212 2114
2213diff -NurpP --minimal linux-3.4.57/fs/ext2/balloc.c linux-3.4.57-vs2.3.3.9/fs/ext2/balloc.c 2115 sprintf(s, "%d", index);
2214--- linux-3.4.57/fs/ext2/balloc.c 2012-01-09 15:14:54.000000000 +0000 2116diff -NurpP --minimal linux-3.10.17/fs/ext2/balloc.c linux-3.10.17-vs2.3.6.6/fs/ext2/balloc.c
2215+++ linux-3.4.57-vs2.3.3.9/fs/ext2/balloc.c 2012-05-21 16:15:04.000000000 +0000 2117--- linux-3.10.17/fs/ext2/balloc.c 2013-05-31 13:45:23.000000000 +0000
2216@@ -701,7 +701,6 @@ ext2_try_to_allocate(struct super_block 2118+++ linux-3.10.17-vs2.3.6.6/fs/ext2/balloc.c 2013-08-22 20:29:59.000000000 +0000
2119@@ -693,7 +693,6 @@ ext2_try_to_allocate(struct super_block
2217 start = 0; 2120 start = 0;
2218 end = EXT2_BLOCKS_PER_GROUP(sb); 2121 end = EXT2_BLOCKS_PER_GROUP(sb);
2219 } 2122 }
@@ -2221,9 +2124,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ext2/balloc.c linux-3.4.57-vs2.3.3.9/fs/ex
2221 BUG_ON(start > EXT2_BLOCKS_PER_GROUP(sb)); 2124 BUG_ON(start > EXT2_BLOCKS_PER_GROUP(sb));
2222 2125
2223 repeat: 2126 repeat:
2224diff -NurpP --minimal linux-3.4.57/fs/ext2/ext2.h linux-3.4.57-vs2.3.3.9/fs/ext2/ext2.h 2127diff -NurpP --minimal linux-3.10.17/fs/ext2/ext2.h linux-3.10.17-vs2.3.6.6/fs/ext2/ext2.h
2225--- linux-3.4.57/fs/ext2/ext2.h 2012-05-21 16:07:20.000000000 +0000 2128--- linux-3.10.17/fs/ext2/ext2.h 2012-12-11 03:30:57.000000000 +0000
2226+++ linux-3.4.57-vs2.3.3.9/fs/ext2/ext2.h 2012-05-21 16:15:05.000000000 +0000 2129+++ linux-3.10.17-vs2.3.6.6/fs/ext2/ext2.h 2013-08-22 20:29:59.000000000 +0000
2227@@ -244,8 +244,12 @@ struct ext2_group_desc 2130@@ -244,8 +244,12 @@ struct ext2_group_desc
2228 #define EXT2_NOTAIL_FL FS_NOTAIL_FL /* file tail should not be merged */ 2131 #define EXT2_NOTAIL_FL FS_NOTAIL_FL /* file tail should not be merged */
2229 #define EXT2_DIRSYNC_FL FS_DIRSYNC_FL /* dirsync behaviour (directories only) */ 2132 #define EXT2_DIRSYNC_FL FS_DIRSYNC_FL /* dirsync behaviour (directories only) */
@@ -2271,18 +2174,18 @@ diff -NurpP --minimal linux-3.4.57/fs/ext2/ext2.h linux-3.4.57-vs2.3.3.9/fs/ext2
2271 2174
2272 /* ioctl.c */ 2175 /* ioctl.c */
2273 extern long ext2_ioctl(struct file *, unsigned int, unsigned long); 2176 extern long ext2_ioctl(struct file *, unsigned int, unsigned long);
2274diff -NurpP --minimal linux-3.4.57/fs/ext2/file.c linux-3.4.57-vs2.3.3.9/fs/ext2/file.c 2177diff -NurpP --minimal linux-3.10.17/fs/ext2/file.c linux-3.10.17-vs2.3.6.6/fs/ext2/file.c
2275--- linux-3.4.57/fs/ext2/file.c 2011-10-24 16:45:27.000000000 +0000 2178--- linux-3.10.17/fs/ext2/file.c 2012-12-11 03:30:57.000000000 +0000
2276+++ linux-3.4.57-vs2.3.3.9/fs/ext2/file.c 2012-05-21 16:15:05.000000000 +0000 2179+++ linux-3.10.17-vs2.3.6.6/fs/ext2/file.c 2013-08-22 20:29:59.000000000 +0000
2277@@ -104,4 +104,5 @@ const struct inode_operations ext2_file_ 2180@@ -104,4 +104,5 @@ const struct inode_operations ext2_file_
2278 .setattr = ext2_setattr, 2181 .setattr = ext2_setattr,
2279 .get_acl = ext2_get_acl, 2182 .get_acl = ext2_get_acl,
2280 .fiemap = ext2_fiemap, 2183 .fiemap = ext2_fiemap,
2281+ .sync_flags = ext2_sync_flags, 2184+ .sync_flags = ext2_sync_flags,
2282 }; 2185 };
2283diff -NurpP --minimal linux-3.4.57/fs/ext2/ialloc.c linux-3.4.57-vs2.3.3.9/fs/ext2/ialloc.c 2186diff -NurpP --minimal linux-3.10.17/fs/ext2/ialloc.c linux-3.10.17-vs2.3.6.6/fs/ext2/ialloc.c
2284--- linux-3.4.57/fs/ext2/ialloc.c 2012-03-19 18:47:25.000000000 +0000 2187--- linux-3.10.17/fs/ext2/ialloc.c 2013-05-31 13:45:23.000000000 +0000
2285+++ linux-3.4.57-vs2.3.3.9/fs/ext2/ialloc.c 2012-05-21 16:15:05.000000000 +0000 2188+++ linux-3.10.17-vs2.3.6.6/fs/ext2/ialloc.c 2013-08-22 20:29:59.000000000 +0000
2286@@ -17,6 +17,7 @@ 2189@@ -17,6 +17,7 @@
2287 #include <linux/backing-dev.h> 2190 #include <linux/backing-dev.h>
2288 #include <linux/buffer_head.h> 2191 #include <linux/buffer_head.h>
@@ -2291,26 +2194,26 @@ diff -NurpP --minimal linux-3.4.57/fs/ext2/ialloc.c linux-3.4.57-vs2.3.3.9/fs/ex
2291 #include "ext2.h" 2194 #include "ext2.h"
2292 #include "xattr.h" 2195 #include "xattr.h"
2293 #include "acl.h" 2196 #include "acl.h"
2294@@ -549,6 +550,7 @@ got: 2197@@ -546,6 +547,7 @@ got:
2295 inode->i_mode = mode; 2198 inode->i_mode = mode;
2296 inode->i_uid = current_fsuid(); 2199 inode->i_uid = current_fsuid();
2297 inode->i_gid = dir->i_gid; 2200 inode->i_gid = dir->i_gid;
2298+ inode->i_tag = dx_current_fstag(sb); 2201+ i_tag_write(inode, dx_current_fstag(sb));
2299 } else 2202 } else
2300 inode_init_owner(inode, dir, mode); 2203 inode_init_owner(inode, dir, mode);
2301 2204
2302diff -NurpP --minimal linux-3.4.57/fs/ext2/inode.c linux-3.4.57-vs2.3.3.9/fs/ext2/inode.c 2205diff -NurpP --minimal linux-3.10.17/fs/ext2/inode.c linux-3.10.17-vs2.3.6.6/fs/ext2/inode.c
2303--- linux-3.4.57/fs/ext2/inode.c 2012-03-19 18:47:25.000000000 +0000 2206--- linux-3.10.17/fs/ext2/inode.c 2013-07-14 17:01:27.000000000 +0000
2304+++ linux-3.4.57-vs2.3.3.9/fs/ext2/inode.c 2012-05-21 16:15:05.000000000 +0000 2207+++ linux-3.10.17-vs2.3.6.6/fs/ext2/inode.c 2013-08-22 21:46:54.000000000 +0000
2305@@ -31,6 +31,7 @@ 2208@@ -32,6 +32,7 @@
2306 #include <linux/mpage.h>
2307 #include <linux/fiemap.h> 2209 #include <linux/fiemap.h>
2308 #include <linux/namei.h> 2210 #include <linux/namei.h>
2211 #include <linux/aio.h>
2309+#include <linux/vs_tag.h> 2212+#include <linux/vs_tag.h>
2310 #include "ext2.h" 2213 #include "ext2.h"
2311 #include "acl.h" 2214 #include "acl.h"
2312 #include "xip.h" 2215 #include "xip.h"
2313@@ -1162,7 +1163,7 @@ static void ext2_truncate_blocks(struct 2216@@ -1180,7 +1181,7 @@ static void ext2_truncate_blocks(struct
2314 return; 2217 return;
2315 if (ext2_inode_is_fast_symlink(inode)) 2218 if (ext2_inode_is_fast_symlink(inode))
2316 return; 2219 return;
@@ -2319,7 +2222,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext2/inode.c linux-3.4.57-vs2.3.3.9/fs/ext
2319 return; 2222 return;
2320 __ext2_truncate_blocks(inode, offset); 2223 __ext2_truncate_blocks(inode, offset);
2321 } 2224 }
2322@@ -1253,36 +1254,61 @@ void ext2_set_inode_flags(struct inode * 2225@@ -1271,36 +1272,61 @@ void ext2_set_inode_flags(struct inode *
2323 { 2226 {
2324 unsigned int flags = EXT2_I(inode)->i_flags; 2227 unsigned int flags = EXT2_I(inode)->i_flags;
2325 2228
@@ -2388,70 +2291,55 @@ diff -NurpP --minimal linux-3.4.57/fs/ext2/inode.c linux-3.4.57-vs2.3.3.9/fs/ext
2388 } 2291 }
2389 2292
2390 struct inode *ext2_iget (struct super_block *sb, unsigned long ino) 2293 struct inode *ext2_iget (struct super_block *sb, unsigned long ino)
2391@@ -1292,6 +1318,8 @@ struct inode *ext2_iget (struct super_bl 2294@@ -1336,8 +1362,10 @@ struct inode *ext2_iget (struct super_bl
2392 struct ext2_inode *raw_inode; 2295 i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
2393 struct inode *inode; 2296 i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
2394 long ret = -EIO;
2395+ uid_t uid;
2396+ gid_t gid;
2397 int n;
2398
2399 inode = iget_locked(sb, ino);
2400@@ -1310,12 +1338,16 @@ struct inode *ext2_iget (struct super_bl
2401 }
2402
2403 inode->i_mode = le16_to_cpu(raw_inode->i_mode);
2404- inode->i_uid = (uid_t)le16_to_cpu(raw_inode->i_uid_low);
2405- inode->i_gid = (gid_t)le16_to_cpu(raw_inode->i_gid_low);
2406+ uid = (uid_t)le16_to_cpu(raw_inode->i_uid_low);
2407+ gid = (gid_t)le16_to_cpu(raw_inode->i_gid_low);
2408 if (!(test_opt (inode->i_sb, NO_UID32))) {
2409- inode->i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
2410- inode->i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
2411+ uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
2412+ gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
2413 } 2297 }
2414+ inode->i_uid = INOTAG_UID(DX_TAG(inode), uid, gid); 2298- i_uid_write(inode, i_uid);
2415+ inode->i_gid = INOTAG_GID(DX_TAG(inode), uid, gid); 2299- i_gid_write(inode, i_gid);
2416+ inode->i_tag = INOTAG_TAG(DX_TAG(inode), uid, gid, 2300+ i_uid_write(inode, INOTAG_UID(DX_TAG(inode), i_uid, i_gid));
2417+ le16_to_cpu(raw_inode->i_raw_tag)); 2301+ i_gid_write(inode, INOTAG_GID(DX_TAG(inode), i_uid, i_gid));
2302+ i_tag_write(inode, INOTAG_TAG(DX_TAG(inode), i_uid, i_gid,
2303+ le16_to_cpu(raw_inode->i_raw_tag)));
2418 set_nlink(inode, le16_to_cpu(raw_inode->i_links_count)); 2304 set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
2419 inode->i_size = le32_to_cpu(raw_inode->i_size); 2305 inode->i_size = le32_to_cpu(raw_inode->i_size);
2420 inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime); 2306 inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime);
2421@@ -1413,8 +1445,8 @@ static int __ext2_write_inode(struct ino 2307@@ -1435,8 +1463,10 @@ static int __ext2_write_inode(struct ino
2422 struct ext2_inode_info *ei = EXT2_I(inode); 2308 struct ext2_inode_info *ei = EXT2_I(inode);
2423 struct super_block *sb = inode->i_sb; 2309 struct super_block *sb = inode->i_sb;
2424 ino_t ino = inode->i_ino; 2310 ino_t ino = inode->i_ino;
2425- uid_t uid = inode->i_uid; 2311- uid_t uid = i_uid_read(inode);
2426- gid_t gid = inode->i_gid; 2312- gid_t gid = i_gid_read(inode);
2427+ uid_t uid = TAGINO_UID(DX_TAG(inode), inode->i_uid, inode->i_tag); 2313+ uid_t uid = from_kuid(&init_user_ns,
2428+ gid_t gid = TAGINO_GID(DX_TAG(inode), inode->i_gid, inode->i_tag); 2314+ TAGINO_KUID(DX_TAG(inode), inode->i_uid, inode->i_tag));
2315+ gid_t gid = from_kgid(&init_user_ns,
2316+ TAGINO_KGID(DX_TAG(inode), inode->i_gid, inode->i_tag));
2429 struct buffer_head * bh; 2317 struct buffer_head * bh;
2430 struct ext2_inode * raw_inode = ext2_get_inode(sb, ino, &bh); 2318 struct ext2_inode * raw_inode = ext2_get_inode(sb, ino, &bh);
2431 int n; 2319 int n;
2432@@ -1450,6 +1482,9 @@ static int __ext2_write_inode(struct ino 2320@@ -1472,6 +1502,9 @@ static int __ext2_write_inode(struct ino
2433 raw_inode->i_uid_high = 0; 2321 raw_inode->i_uid_high = 0;
2434 raw_inode->i_gid_high = 0; 2322 raw_inode->i_gid_high = 0;
2435 } 2323 }
2436+#ifdef CONFIG_TAGGING_INTERN 2324+#ifdef CONFIG_TAGGING_INTERN
2437+ raw_inode->i_raw_tag = cpu_to_le16(inode->i_tag); 2325+ raw_inode->i_raw_tag = cpu_to_le16(i_tag_read(inode));
2438+#endif 2326+#endif
2439 raw_inode->i_links_count = cpu_to_le16(inode->i_nlink); 2327 raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
2440 raw_inode->i_size = cpu_to_le32(inode->i_size); 2328 raw_inode->i_size = cpu_to_le32(inode->i_size);
2441 raw_inode->i_atime = cpu_to_le32(inode->i_atime.tv_sec); 2329 raw_inode->i_atime = cpu_to_le32(inode->i_atime.tv_sec);
2442@@ -1530,7 +1565,8 @@ int ext2_setattr(struct dentry *dentry, 2330@@ -1552,7 +1585,8 @@ int ext2_setattr(struct dentry *dentry,
2443 if (is_quota_modification(inode, iattr)) 2331 if (is_quota_modification(inode, iattr))
2444 dquot_initialize(inode); 2332 dquot_initialize(inode);
2445 if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) || 2333 if ((iattr->ia_valid & ATTR_UID && !uid_eq(iattr->ia_uid, inode->i_uid)) ||
2446- (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) { 2334- (iattr->ia_valid & ATTR_GID && !gid_eq(iattr->ia_gid, inode->i_gid))) {
2447+ (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid) || 2335+ (iattr->ia_valid & ATTR_GID && !gid_eq(iattr->ia_gid, inode->i_gid)) ||
2448+ (iattr->ia_valid & ATTR_TAG && iattr->ia_tag != inode->i_tag)) { 2336+ (iattr->ia_valid & ATTR_TAG && !tag_eq(iattr->ia_tag, inode->i_tag))) {
2449 error = dquot_transfer(inode, iattr); 2337 error = dquot_transfer(inode, iattr);
2450 if (error) 2338 if (error)
2451 return error; 2339 return error;
2452diff -NurpP --minimal linux-3.4.57/fs/ext2/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ext2/ioctl.c 2340diff -NurpP --minimal linux-3.10.17/fs/ext2/ioctl.c linux-3.10.17-vs2.3.6.6/fs/ext2/ioctl.c
2453--- linux-3.4.57/fs/ext2/ioctl.c 2012-03-19 18:47:25.000000000 +0000 2341--- linux-3.10.17/fs/ext2/ioctl.c 2013-05-31 13:45:23.000000000 +0000
2454+++ linux-3.4.57-vs2.3.3.9/fs/ext2/ioctl.c 2012-05-21 16:15:05.000000000 +0000 2342+++ linux-3.10.17-vs2.3.6.6/fs/ext2/ioctl.c 2013-08-22 20:29:59.000000000 +0000
2455@@ -17,6 +17,16 @@ 2343@@ -17,6 +17,16 @@
2456 #include <asm/uaccess.h> 2344 #include <asm/uaccess.h>
2457 2345
@@ -2468,7 +2356,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext2/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ext
2468+ 2356+
2469 long ext2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) 2357 long ext2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
2470 { 2358 {
2471 struct inode *inode = filp->f_dentry->d_inode; 2359 struct inode *inode = file_inode(filp);
2472@@ -51,6 +61,11 @@ long ext2_ioctl(struct file *filp, unsig 2360@@ -51,6 +61,11 @@ long ext2_ioctl(struct file *filp, unsig
2473 2361
2474 flags = ext2_mask_flags(inode->i_mode, flags); 2362 flags = ext2_mask_flags(inode->i_mode, flags);
@@ -2501,9 +2389,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ext2/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ext
2501 flags |= oldflags & ~EXT2_FL_USER_MODIFIABLE; 2389 flags |= oldflags & ~EXT2_FL_USER_MODIFIABLE;
2502 ei->i_flags = flags; 2390 ei->i_flags = flags;
2503 2391
2504diff -NurpP --minimal linux-3.4.57/fs/ext2/namei.c linux-3.4.57-vs2.3.3.9/fs/ext2/namei.c 2392diff -NurpP --minimal linux-3.10.17/fs/ext2/namei.c linux-3.10.17-vs2.3.6.6/fs/ext2/namei.c
2505--- linux-3.4.57/fs/ext2/namei.c 2012-05-21 16:07:20.000000000 +0000 2393--- linux-3.10.17/fs/ext2/namei.c 2012-12-11 03:30:57.000000000 +0000
2506+++ linux-3.4.57-vs2.3.3.9/fs/ext2/namei.c 2012-05-21 16:15:05.000000000 +0000 2394+++ linux-3.10.17-vs2.3.6.6/fs/ext2/namei.c 2013-08-22 20:29:59.000000000 +0000
2507@@ -32,6 +32,7 @@ 2395@@ -32,6 +32,7 @@
2508 2396
2509 #include <linux/pagemap.h> 2397 #include <linux/pagemap.h>
@@ -2528,10 +2416,10 @@ diff -NurpP --minimal linux-3.4.57/fs/ext2/namei.c linux-3.4.57-vs2.3.3.9/fs/ext
2528 .get_acl = ext2_get_acl, 2416 .get_acl = ext2_get_acl,
2529 }; 2417 };
2530 2418
2531diff -NurpP --minimal linux-3.4.57/fs/ext2/super.c linux-3.4.57-vs2.3.3.9/fs/ext2/super.c 2419diff -NurpP --minimal linux-3.10.17/fs/ext2/super.c linux-3.10.17-vs2.3.6.6/fs/ext2/super.c
2532--- linux-3.4.57/fs/ext2/super.c 2012-05-21 16:07:20.000000000 +0000 2420--- linux-3.10.17/fs/ext2/super.c 2013-05-31 13:45:23.000000000 +0000
2533+++ linux-3.4.57-vs2.3.3.9/fs/ext2/super.c 2012-05-21 16:15:05.000000000 +0000 2421+++ linux-3.10.17-vs2.3.6.6/fs/ext2/super.c 2013-08-22 20:29:59.000000000 +0000
2534@@ -393,7 +393,8 @@ enum { 2422@@ -395,7 +395,8 @@ enum {
2535 Opt_err_ro, Opt_nouid32, Opt_nocheck, Opt_debug, 2423 Opt_err_ro, Opt_nouid32, Opt_nocheck, Opt_debug,
2536 Opt_oldalloc, Opt_orlov, Opt_nobh, Opt_user_xattr, Opt_nouser_xattr, 2424 Opt_oldalloc, Opt_orlov, Opt_nobh, Opt_user_xattr, Opt_nouser_xattr,
2537 Opt_acl, Opt_noacl, Opt_xip, Opt_ignore, Opt_err, Opt_quota, 2425 Opt_acl, Opt_noacl, Opt_xip, Opt_ignore, Opt_err, Opt_quota,
@@ -2541,7 +2429,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext2/super.c linux-3.4.57-vs2.3.3.9/fs/ext
2541 }; 2429 };
2542 2430
2543 static const match_table_t tokens = { 2431 static const match_table_t tokens = {
2544@@ -421,6 +422,9 @@ static const match_table_t tokens = { 2432@@ -423,6 +424,9 @@ static const match_table_t tokens = {
2545 {Opt_acl, "acl"}, 2433 {Opt_acl, "acl"},
2546 {Opt_noacl, "noacl"}, 2434 {Opt_noacl, "noacl"},
2547 {Opt_xip, "xip"}, 2435 {Opt_xip, "xip"},
@@ -2551,7 +2439,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext2/super.c linux-3.4.57-vs2.3.3.9/fs/ext
2551 {Opt_grpquota, "grpquota"}, 2439 {Opt_grpquota, "grpquota"},
2552 {Opt_ignore, "noquota"}, 2440 {Opt_ignore, "noquota"},
2553 {Opt_quota, "quota"}, 2441 {Opt_quota, "quota"},
2554@@ -491,6 +495,20 @@ static int parse_options(char *options, 2442@@ -506,6 +510,20 @@ static int parse_options(char *options,
2555 case Opt_nouid32: 2443 case Opt_nouid32:
2556 set_opt (sbi->s_mount_opt, NO_UID32); 2444 set_opt (sbi->s_mount_opt, NO_UID32);
2557 break; 2445 break;
@@ -2572,7 +2460,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext2/super.c linux-3.4.57-vs2.3.3.9/fs/ext
2572 case Opt_nocheck: 2460 case Opt_nocheck:
2573 clear_opt (sbi->s_mount_opt, CHECK); 2461 clear_opt (sbi->s_mount_opt, CHECK);
2574 break; 2462 break;
2575@@ -849,6 +867,8 @@ static int ext2_fill_super(struct super_ 2463@@ -864,6 +882,8 @@ static int ext2_fill_super(struct super_
2576 if (!parse_options((char *) data, sb)) 2464 if (!parse_options((char *) data, sb))
2577 goto failed_mount; 2465 goto failed_mount;
2578 2466
@@ -2581,7 +2469,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext2/super.c linux-3.4.57-vs2.3.3.9/fs/ext
2581 sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | 2469 sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
2582 ((EXT2_SB(sb)->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? 2470 ((EXT2_SB(sb)->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ?
2583 MS_POSIXACL : 0); 2471 MS_POSIXACL : 0);
2584@@ -1222,6 +1242,14 @@ static int ext2_remount (struct super_bl 2472@@ -1269,6 +1289,14 @@ static int ext2_remount (struct super_bl
2585 err = -EINVAL; 2473 err = -EINVAL;
2586 goto restore_opts; 2474 goto restore_opts;
2587 } 2475 }
@@ -2596,9 +2484,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ext2/super.c linux-3.4.57-vs2.3.3.9/fs/ext
2596 2484
2597 sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | 2485 sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
2598 ((sbi->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0); 2486 ((sbi->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
2599diff -NurpP --minimal linux-3.4.57/fs/ext3/ext3.h linux-3.4.57-vs2.3.3.9/fs/ext3/ext3.h 2487diff -NurpP --minimal linux-3.10.17/fs/ext3/ext3.h linux-3.10.17-vs2.3.6.6/fs/ext3/ext3.h
2600--- linux-3.4.57/fs/ext3/ext3.h 2012-05-21 16:07:20.000000000 +0000 2488--- linux-3.10.17/fs/ext3/ext3.h 2012-12-11 03:30:57.000000000 +0000
2601+++ linux-3.4.57-vs2.3.3.9/fs/ext3/ext3.h 2012-05-21 17:13:31.000000000 +0000 2489+++ linux-3.10.17-vs2.3.6.6/fs/ext3/ext3.h 2013-08-22 20:29:59.000000000 +0000
2602@@ -151,10 +151,14 @@ struct ext3_group_desc 2490@@ -151,10 +151,14 @@ struct ext3_group_desc
2603 #define EXT3_NOTAIL_FL 0x00008000 /* file tail should not be merged */ 2491 #define EXT3_NOTAIL_FL 0x00008000 /* file tail should not be merged */
2604 #define EXT3_DIRSYNC_FL 0x00010000 /* dirsync behaviour (directories only) */ 2492 #define EXT3_DIRSYNC_FL 0x00010000 /* dirsync behaviour (directories only) */
@@ -2642,7 +2530,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/ext3.h linux-3.4.57-vs2.3.3.9/fs/ext3
2642 2530
2643 /* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */ 2531 /* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */
2644 #ifndef _LINUX_EXT2_FS_H 2532 #ifndef _LINUX_EXT2_FS_H
2645@@ -1057,6 +1064,7 @@ extern void ext3_get_inode_flags(struct 2533@@ -1061,6 +1068,7 @@ extern void ext3_get_inode_flags(struct
2646 extern void ext3_set_aops(struct inode *inode); 2534 extern void ext3_set_aops(struct inode *inode);
2647 extern int ext3_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, 2535 extern int ext3_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
2648 u64 start, u64 len); 2536 u64 start, u64 len);
@@ -2650,9 +2538,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/ext3.h linux-3.4.57-vs2.3.3.9/fs/ext3
2650 2538
2651 /* ioctl.c */ 2539 /* ioctl.c */
2652 extern long ext3_ioctl(struct file *, unsigned int, unsigned long); 2540 extern long ext3_ioctl(struct file *, unsigned int, unsigned long);
2653diff -NurpP --minimal linux-3.4.57/fs/ext3/file.c linux-3.4.57-vs2.3.3.9/fs/ext3/file.c 2541diff -NurpP --minimal linux-3.10.17/fs/ext3/file.c linux-3.10.17-vs2.3.6.6/fs/ext3/file.c
2654--- linux-3.4.57/fs/ext3/file.c 2012-05-21 16:07:20.000000000 +0000 2542--- linux-3.10.17/fs/ext3/file.c 2012-12-11 03:30:57.000000000 +0000
2655+++ linux-3.4.57-vs2.3.3.9/fs/ext3/file.c 2012-05-21 16:15:05.000000000 +0000 2543+++ linux-3.10.17-vs2.3.6.6/fs/ext3/file.c 2013-08-22 20:29:59.000000000 +0000
2656@@ -76,5 +76,6 @@ const struct inode_operations ext3_file_ 2544@@ -76,5 +76,6 @@ const struct inode_operations ext3_file_
2657 #endif 2545 #endif
2658 .get_acl = ext3_get_acl, 2546 .get_acl = ext3_get_acl,
@@ -2660,9 +2548,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/file.c linux-3.4.57-vs2.3.3.9/fs/ext3
2660+ .sync_flags = ext3_sync_flags, 2548+ .sync_flags = ext3_sync_flags,
2661 }; 2549 };
2662 2550
2663diff -NurpP --minimal linux-3.4.57/fs/ext3/ialloc.c linux-3.4.57-vs2.3.3.9/fs/ext3/ialloc.c 2551diff -NurpP --minimal linux-3.10.17/fs/ext3/ialloc.c linux-3.10.17-vs2.3.6.6/fs/ext3/ialloc.c
2664--- linux-3.4.57/fs/ext3/ialloc.c 2012-05-21 16:07:20.000000000 +0000 2552--- linux-3.10.17/fs/ext3/ialloc.c 2012-12-11 03:30:57.000000000 +0000
2665+++ linux-3.4.57-vs2.3.3.9/fs/ext3/ialloc.c 2012-05-21 16:15:05.000000000 +0000 2553+++ linux-3.10.17-vs2.3.6.6/fs/ext3/ialloc.c 2013-08-22 20:29:59.000000000 +0000
2666@@ -14,6 +14,7 @@ 2554@@ -14,6 +14,7 @@
2667 2555
2668 #include <linux/quotaops.h> 2556 #include <linux/quotaops.h>
@@ -2671,27 +2559,27 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/ialloc.c linux-3.4.57-vs2.3.3.9/fs/ex
2671 2559
2672 #include "ext3.h" 2560 #include "ext3.h"
2673 #include "xattr.h" 2561 #include "xattr.h"
2674@@ -485,6 +486,7 @@ got: 2562@@ -469,6 +470,7 @@ got:
2675 inode->i_mode = mode; 2563 inode->i_mode = mode;
2676 inode->i_uid = current_fsuid(); 2564 inode->i_uid = current_fsuid();
2677 inode->i_gid = dir->i_gid; 2565 inode->i_gid = dir->i_gid;
2678+ inode->i_tag = dx_current_fstag(sb); 2566+ i_tag_write(inode, dx_current_fstag(sb));
2679 } else 2567 } else
2680 inode_init_owner(inode, dir, mode); 2568 inode_init_owner(inode, dir, mode);
2681 2569
2682diff -NurpP --minimal linux-3.4.57/fs/ext3/inode.c linux-3.4.57-vs2.3.3.9/fs/ext3/inode.c 2570diff -NurpP --minimal linux-3.10.17/fs/ext3/inode.c linux-3.10.17-vs2.3.6.6/fs/ext3/inode.c
2683--- linux-3.4.57/fs/ext3/inode.c 2013-08-13 14:13:32.000000000 +0000 2571--- linux-3.10.17/fs/ext3/inode.c 2013-07-14 17:01:27.000000000 +0000
2684+++ linux-3.4.57-vs2.3.3.9/fs/ext3/inode.c 2013-08-13 17:07:36.000000000 +0000 2572+++ linux-3.10.17-vs2.3.6.6/fs/ext3/inode.c 2013-08-22 21:21:18.000000000 +0000
2685@@ -27,6 +27,8 @@ 2573@@ -28,6 +28,8 @@
2686 #include <linux/writeback.h>
2687 #include <linux/mpage.h> 2574 #include <linux/mpage.h>
2688 #include <linux/namei.h> 2575 #include <linux/namei.h>
2576 #include <linux/aio.h>
2689+#include <linux/vs_tag.h> 2577+#include <linux/vs_tag.h>
2690+ 2578+
2691 #include "ext3.h" 2579 #include "ext3.h"
2692 #include "xattr.h" 2580 #include "xattr.h"
2693 #include "acl.h" 2581 #include "acl.h"
2694@@ -2849,36 +2851,60 @@ void ext3_set_inode_flags(struct inode * 2582@@ -2853,36 +2855,60 @@ void ext3_set_inode_flags(struct inode *
2695 { 2583 {
2696 unsigned int flags = EXT3_I(inode)->i_flags; 2584 unsigned int flags = EXT3_I(inode)->i_flags;
2697 2585
@@ -2759,95 +2647,53 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/inode.c linux-3.4.57-vs2.3.3.9/fs/ext
2759 } 2647 }
2760 2648
2761 struct inode *ext3_iget(struct super_block *sb, unsigned long ino) 2649 struct inode *ext3_iget(struct super_block *sb, unsigned long ino)
2762@@ -2892,6 +2918,8 @@ struct inode *ext3_iget(struct super_blo 2650@@ -2920,8 +2946,10 @@ struct inode *ext3_iget(struct super_blo
2763 transaction_t *transaction; 2651 i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
2764 long ret; 2652 i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
2765 int block;
2766+ uid_t uid;
2767+ gid_t gid;
2768
2769 inode = iget_locked(sb, ino);
2770 if (!inode)
2771@@ -2908,12 +2936,16 @@ struct inode *ext3_iget(struct super_blo
2772 bh = iloc.bh;
2773 raw_inode = ext3_raw_inode(&iloc);
2774 inode->i_mode = le16_to_cpu(raw_inode->i_mode);
2775- inode->i_uid = (uid_t)le16_to_cpu(raw_inode->i_uid_low);
2776- inode->i_gid = (gid_t)le16_to_cpu(raw_inode->i_gid_low);
2777+ uid = (uid_t)le16_to_cpu(raw_inode->i_uid_low);
2778+ gid = (gid_t)le16_to_cpu(raw_inode->i_gid_low);
2779 if(!(test_opt (inode->i_sb, NO_UID32))) {
2780- inode->i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
2781- inode->i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
2782+ uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
2783+ gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
2784 } 2653 }
2785+ inode->i_uid = INOTAG_UID(DX_TAG(inode), uid, gid); 2654- i_uid_write(inode, i_uid);
2786+ inode->i_gid = INOTAG_GID(DX_TAG(inode), uid, gid); 2655- i_gid_write(inode, i_gid);
2787+ inode->i_tag = INOTAG_TAG(DX_TAG(inode), uid, gid, 2656+ i_uid_write(inode, INOTAG_UID(DX_TAG(inode), i_uid, i_gid));
2788+ le16_to_cpu(raw_inode->i_raw_tag)); 2657+ i_gid_write(inode, INOTAG_GID(DX_TAG(inode), i_uid, i_gid));
2658+ i_tag_write(inode, INOTAG_TAG(DX_TAG(inode), i_uid, i_gid,
2659+ le16_to_cpu(raw_inode->i_raw_tag)));
2789 set_nlink(inode, le16_to_cpu(raw_inode->i_links_count)); 2660 set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
2790 inode->i_size = le32_to_cpu(raw_inode->i_size); 2661 inode->i_size = le32_to_cpu(raw_inode->i_size);
2791 inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime); 2662 inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime);
2792@@ -3068,6 +3100,8 @@ static int ext3_do_update_inode(handle_t 2663@@ -3093,8 +3121,10 @@ again:
2793 struct ext3_inode *raw_inode = ext3_raw_inode(iloc); 2664
2794 struct ext3_inode_info *ei = EXT3_I(inode);
2795 struct buffer_head *bh = iloc->bh;
2796+ uid_t uid = TAGINO_UID(DX_TAG(inode), inode->i_uid, inode->i_tag);
2797+ gid_t gid = TAGINO_GID(DX_TAG(inode), inode->i_gid, inode->i_tag);
2798 int err = 0, rc, block;
2799 int need_datasync = 0;
2800 __le32 disksize;
2801@@ -3084,29 +3118,32 @@ again:
2802 ext3_get_inode_flags(ei); 2665 ext3_get_inode_flags(ei);
2803 raw_inode->i_mode = cpu_to_le16(inode->i_mode); 2666 raw_inode->i_mode = cpu_to_le16(inode->i_mode);
2667- i_uid = i_uid_read(inode);
2668- i_gid = i_gid_read(inode);
2669+ i_uid = from_kuid(&init_user_ns,
2670+ TAGINO_KUID(DX_TAG(inode), inode->i_uid, inode->i_tag));
2671+ i_gid = from_kgid(&init_user_ns,
2672+ TAGINO_KGID(DX_TAG(inode), inode->i_gid, inode->i_tag));
2804 if(!(test_opt(inode->i_sb, NO_UID32))) { 2673 if(!(test_opt(inode->i_sb, NO_UID32))) {
2805- raw_inode->i_uid_low = cpu_to_le16(low_16_bits(inode->i_uid)); 2674 raw_inode->i_uid_low = cpu_to_le16(low_16_bits(i_uid));
2806- raw_inode->i_gid_low = cpu_to_le16(low_16_bits(inode->i_gid)); 2675 raw_inode->i_gid_low = cpu_to_le16(low_16_bits(i_gid));
2807+ raw_inode->i_uid_low = cpu_to_le16(low_16_bits(uid)); 2676@@ -3119,6 +3149,9 @@ again:
2808+ raw_inode->i_gid_low = cpu_to_le16(low_16_bits(gid));
2809 /*
2810 * Fix up interoperability with old kernels. Otherwise, old inodes get
2811 * re-used with the upper 16 bits of the uid/gid intact
2812 */
2813 if(!ei->i_dtime) {
2814 raw_inode->i_uid_high =
2815- cpu_to_le16(high_16_bits(inode->i_uid));
2816+ cpu_to_le16(high_16_bits(uid));
2817 raw_inode->i_gid_high =
2818- cpu_to_le16(high_16_bits(inode->i_gid));
2819+ cpu_to_le16(high_16_bits(gid));
2820 } else {
2821 raw_inode->i_uid_high = 0;
2822 raw_inode->i_gid_high = 0;
2823 }
2824 } else {
2825 raw_inode->i_uid_low =
2826- cpu_to_le16(fs_high2lowuid(inode->i_uid));
2827+ cpu_to_le16(fs_high2lowuid(uid));
2828 raw_inode->i_gid_low =
2829- cpu_to_le16(fs_high2lowgid(inode->i_gid));
2830+ cpu_to_le16(fs_high2lowgid(gid));
2831 raw_inode->i_uid_high = 0; 2677 raw_inode->i_uid_high = 0;
2832 raw_inode->i_gid_high = 0; 2678 raw_inode->i_gid_high = 0;
2833 } 2679 }
2834+#ifdef CONFIG_TAGGING_INTERN 2680+#ifdef CONFIG_TAGGING_INTERN
2835+ raw_inode->i_raw_tag = cpu_to_le16(inode->i_tag); 2681+ raw_inode->i_raw_tag = cpu_to_le16(i_tag_read(inode));
2836+#endif 2682+#endif
2837 raw_inode->i_links_count = cpu_to_le16(inode->i_nlink); 2683 raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
2838 disksize = cpu_to_le32(ei->i_disksize); 2684 disksize = cpu_to_le32(ei->i_disksize);
2839 if (disksize != raw_inode->i_size) { 2685 if (disksize != raw_inode->i_size) {
2840@@ -3275,7 +3312,8 @@ int ext3_setattr(struct dentry *dentry, 2686@@ -3287,7 +3320,8 @@ int ext3_setattr(struct dentry *dentry,
2841 if (is_quota_modification(inode, attr)) 2687 if (is_quota_modification(inode, attr))
2842 dquot_initialize(inode); 2688 dquot_initialize(inode);
2843 if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) || 2689 if ((ia_valid & ATTR_UID && !uid_eq(attr->ia_uid, inode->i_uid)) ||
2844- (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) { 2690- (ia_valid & ATTR_GID && !gid_eq(attr->ia_gid, inode->i_gid))) {
2845+ (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid) || 2691+ (ia_valid & ATTR_GID && !gid_eq(attr->ia_gid, inode->i_gid)) ||
2846+ (ia_valid & ATTR_TAG && attr->ia_tag != inode->i_tag)) { 2692+ (ia_valid & ATTR_TAG && !tag_eq(attr->ia_tag, inode->i_tag))) {
2847 handle_t *handle; 2693 handle_t *handle;
2848 2694
2849 /* (user+group)*(old+new) structure, inode write (sb, 2695 /* (user+group)*(old+new) structure, inode write (sb,
2850@@ -3297,6 +3335,8 @@ int ext3_setattr(struct dentry *dentry, 2696@@ -3309,6 +3343,8 @@ int ext3_setattr(struct dentry *dentry,
2851 inode->i_uid = attr->ia_uid; 2697 inode->i_uid = attr->ia_uid;
2852 if (attr->ia_valid & ATTR_GID) 2698 if (attr->ia_valid & ATTR_GID)
2853 inode->i_gid = attr->ia_gid; 2699 inode->i_gid = attr->ia_gid;
@@ -2856,9 +2702,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/inode.c linux-3.4.57-vs2.3.3.9/fs/ext
2856 error = ext3_mark_inode_dirty(handle, inode); 2702 error = ext3_mark_inode_dirty(handle, inode);
2857 ext3_journal_stop(handle); 2703 ext3_journal_stop(handle);
2858 } 2704 }
2859diff -NurpP --minimal linux-3.4.57/fs/ext3/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ext3/ioctl.c 2705diff -NurpP --minimal linux-3.10.17/fs/ext3/ioctl.c linux-3.10.17-vs2.3.6.6/fs/ext3/ioctl.c
2860--- linux-3.4.57/fs/ext3/ioctl.c 2012-05-21 16:07:20.000000000 +0000 2706--- linux-3.10.17/fs/ext3/ioctl.c 2013-05-31 13:45:23.000000000 +0000
2861+++ linux-3.4.57-vs2.3.3.9/fs/ext3/ioctl.c 2012-05-21 16:15:05.000000000 +0000 2707+++ linux-3.10.17-vs2.3.6.6/fs/ext3/ioctl.c 2013-08-22 20:29:59.000000000 +0000
2862@@ -12,6 +12,34 @@ 2708@@ -12,6 +12,34 @@
2863 #include <asm/uaccess.h> 2709 #include <asm/uaccess.h>
2864 #include "ext3.h" 2710 #include "ext3.h"
@@ -2893,7 +2739,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ext
2893+ 2739+
2894 long ext3_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) 2740 long ext3_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
2895 { 2741 {
2896 struct inode *inode = filp->f_dentry->d_inode; 2742 struct inode *inode = file_inode(filp);
2897@@ -45,6 +73,11 @@ long ext3_ioctl(struct file *filp, unsig 2743@@ -45,6 +73,11 @@ long ext3_ioctl(struct file *filp, unsig
2898 2744
2899 flags = ext3_mask_flags(inode->i_mode, flags); 2745 flags = ext3_mask_flags(inode->i_mode, flags);
@@ -2926,9 +2772,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ext
2926 flags |= oldflags & ~EXT3_FL_USER_MODIFIABLE; 2772 flags |= oldflags & ~EXT3_FL_USER_MODIFIABLE;
2927 ei->i_flags = flags; 2773 ei->i_flags = flags;
2928 2774
2929diff -NurpP --minimal linux-3.4.57/fs/ext3/namei.c linux-3.4.57-vs2.3.3.9/fs/ext3/namei.c 2775diff -NurpP --minimal linux-3.10.17/fs/ext3/namei.c linux-3.10.17-vs2.3.6.6/fs/ext3/namei.c
2930--- linux-3.4.57/fs/ext3/namei.c 2013-08-13 14:13:32.000000000 +0000 2776--- linux-3.10.17/fs/ext3/namei.c 2013-10-25 15:17:43.000000000 +0000
2931+++ linux-3.4.57-vs2.3.3.9/fs/ext3/namei.c 2013-08-13 17:07:36.000000000 +0000 2777+++ linux-3.10.17-vs2.3.6.6/fs/ext3/namei.c 2013-08-22 20:29:59.000000000 +0000
2932@@ -25,6 +25,8 @@ 2778@@ -25,6 +25,8 @@
2933 */ 2779 */
2934 2780
@@ -2938,7 +2784,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/namei.c linux-3.4.57-vs2.3.3.9/fs/ext
2938 #include "ext3.h" 2784 #include "ext3.h"
2939 #include "namei.h" 2785 #include "namei.h"
2940 #include "xattr.h" 2786 #include "xattr.h"
2941@@ -912,6 +914,7 @@ restart: 2787@@ -915,6 +917,7 @@ restart:
2942 submit_bh(READ | REQ_META | REQ_PRIO, 2788 submit_bh(READ | REQ_META | REQ_PRIO,
2943 bh); 2789 bh);
2944 } 2790 }
@@ -2946,7 +2792,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/namei.c linux-3.4.57-vs2.3.3.9/fs/ext
2946 } 2792 }
2947 } 2793 }
2948 if ((bh = bh_use[ra_ptr++]) == NULL) 2794 if ((bh = bh_use[ra_ptr++]) == NULL)
2949@@ -2523,6 +2526,7 @@ const struct inode_operations ext3_dir_i 2795@@ -2524,6 +2527,7 @@ const struct inode_operations ext3_dir_i
2950 .listxattr = ext3_listxattr, 2796 .listxattr = ext3_listxattr,
2951 .removexattr = generic_removexattr, 2797 .removexattr = generic_removexattr,
2952 #endif 2798 #endif
@@ -2954,10 +2800,10 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/namei.c linux-3.4.57-vs2.3.3.9/fs/ext
2954 .get_acl = ext3_get_acl, 2800 .get_acl = ext3_get_acl,
2955 }; 2801 };
2956 2802
2957diff -NurpP --minimal linux-3.4.57/fs/ext3/super.c linux-3.4.57-vs2.3.3.9/fs/ext3/super.c 2803diff -NurpP --minimal linux-3.10.17/fs/ext3/super.c linux-3.10.17-vs2.3.6.6/fs/ext3/super.c
2958--- linux-3.4.57/fs/ext3/super.c 2013-08-13 14:13:32.000000000 +0000 2804--- linux-3.10.17/fs/ext3/super.c 2013-07-14 17:01:27.000000000 +0000
2959+++ linux-3.4.57-vs2.3.3.9/fs/ext3/super.c 2013-03-30 21:29:17.000000000 +0000 2805+++ linux-3.10.17-vs2.3.6.6/fs/ext3/super.c 2013-08-22 20:29:59.000000000 +0000
2960@@ -820,7 +820,8 @@ enum { 2806@@ -813,7 +813,8 @@ enum {
2961 Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota, 2807 Opt_usrjquota, Opt_grpjquota, Opt_offusrjquota, Opt_offgrpjquota,
2962 Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota, 2808 Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota,
2963 Opt_noquota, Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err, 2809 Opt_noquota, Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err,
@@ -2967,7 +2813,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/super.c linux-3.4.57-vs2.3.3.9/fs/ext
2967 }; 2813 };
2968 2814
2969 static const match_table_t tokens = { 2815 static const match_table_t tokens = {
2970@@ -877,6 +878,9 @@ static const match_table_t tokens = { 2816@@ -870,6 +871,9 @@ static const match_table_t tokens = {
2971 {Opt_barrier, "barrier"}, 2817 {Opt_barrier, "barrier"},
2972 {Opt_nobarrier, "nobarrier"}, 2818 {Opt_nobarrier, "nobarrier"},
2973 {Opt_resize, "resize"}, 2819 {Opt_resize, "resize"},
@@ -2977,7 +2823,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/super.c linux-3.4.57-vs2.3.3.9/fs/ext
2977 {Opt_err, NULL}, 2823 {Opt_err, NULL},
2978 }; 2824 };
2979 2825
2980@@ -1029,6 +1033,20 @@ static int parse_options (char *options, 2826@@ -1037,6 +1041,20 @@ static int parse_options (char *options,
2981 case Opt_nouid32: 2827 case Opt_nouid32:
2982 set_opt (sbi->s_mount_opt, NO_UID32); 2828 set_opt (sbi->s_mount_opt, NO_UID32);
2983 break; 2829 break;
@@ -2998,7 +2844,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/super.c linux-3.4.57-vs2.3.3.9/fs/ext
2998 case Opt_nocheck: 2844 case Opt_nocheck:
2999 clear_opt (sbi->s_mount_opt, CHECK); 2845 clear_opt (sbi->s_mount_opt, CHECK);
3000 break; 2846 break;
3001@@ -1727,6 +1745,9 @@ static int ext3_fill_super (struct super 2847@@ -1734,6 +1752,9 @@ static int ext3_fill_super (struct super
3002 NULL, 0)) 2848 NULL, 0))
3003 goto failed_mount; 2849 goto failed_mount;
3004 2850
@@ -3008,7 +2854,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/super.c linux-3.4.57-vs2.3.3.9/fs/ext
3008 sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | 2854 sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
3009 (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0); 2855 (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
3010 2856
3011@@ -2608,6 +2629,14 @@ static int ext3_remount (struct super_bl 2857@@ -2629,6 +2650,14 @@ static int ext3_remount (struct super_bl
3012 if (test_opt(sb, ABORT)) 2858 if (test_opt(sb, ABORT))
3013 ext3_abort(sb, __func__, "Abort forced by user"); 2859 ext3_abort(sb, __func__, "Abort forced by user");
3014 2860
@@ -3023,41 +2869,38 @@ diff -NurpP --minimal linux-3.4.57/fs/ext3/super.c linux-3.4.57-vs2.3.3.9/fs/ext
3023 sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | 2869 sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
3024 (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0); 2870 (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
3025 2871
3026diff -NurpP --minimal linux-3.4.57/fs/ext4/ext4.h linux-3.4.57-vs2.3.3.9/fs/ext4/ext4.h 2872diff -NurpP --minimal linux-3.10.17/fs/ext4/ext4.h linux-3.10.17-vs2.3.6.6/fs/ext4/ext4.h
3027--- linux-3.4.57/fs/ext4/ext4.h 2013-08-13 14:13:32.000000000 +0000 2873--- linux-3.10.17/fs/ext4/ext4.h 2013-07-14 17:01:27.000000000 +0000
3028+++ linux-3.4.57-vs2.3.3.9/fs/ext4/ext4.h 2013-07-14 13:38:34.000000000 +0000 2874+++ linux-3.10.17-vs2.3.6.6/fs/ext4/ext4.h 2013-08-22 20:29:59.000000000 +0000
3029@@ -380,8 +380,12 @@ struct flex_groups { 2875@@ -387,7 +387,10 @@ struct flex_groups {
3030 #define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */ 2876 #define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
3031 #define EXT4_EA_INODE_FL 0x00200000 /* Inode used for large EA */ 2877 #define EXT4_EA_INODE_FL 0x00200000 /* Inode used for large EA */
3032 #define EXT4_EOFBLOCKS_FL 0x00400000 /* Blocks allocated beyond EOF */ 2878 #define EXT4_EOFBLOCKS_FL 0x00400000 /* Blocks allocated beyond EOF */
2879+#define EXT4_BARRIER_FL 0x04000000 /* Barrier for chroot() */
3033+#define EXT4_IXUNLINK_FL 0x08000000 /* Immutable invert on unlink */ 2880+#define EXT4_IXUNLINK_FL 0x08000000 /* Immutable invert on unlink */
2881 #define EXT4_INLINE_DATA_FL 0x10000000 /* Inode has inline data. */
2882+#define EXT4_COW_FL 0x20000000 /* Copy on Write marker */
3034 #define EXT4_RESERVED_FL 0x80000000 /* reserved for ext4 lib */ 2883 #define EXT4_RESERVED_FL 0x80000000 /* reserved for ext4 lib */
3035 2884
3036+#define EXT4_BARRIER_FL 0x04000000 /* Barrier for chroot() */
3037+#define EXT4_COW_FL 0x20000000 /* Copy on Write marker */
3038+
3039 #define EXT4_FL_USER_VISIBLE 0x004BDFFF /* User visible flags */ 2885 #define EXT4_FL_USER_VISIBLE 0x004BDFFF /* User visible flags */
3040 #define EXT4_FL_USER_MODIFIABLE 0x004B80FF /* User modifiable flags */ 2886@@ -663,7 +666,7 @@ struct ext4_inode {
3041
3042@@ -650,7 +654,8 @@ struct ext4_inode {
3043 __le16 l_i_file_acl_high;
3044 __le16 l_i_uid_high; /* these 2 fields */ 2887 __le16 l_i_uid_high; /* these 2 fields */
3045 __le16 l_i_gid_high; /* were reserved2[0] */ 2888 __le16 l_i_gid_high; /* were reserved2[0] */
3046- __u32 l_i_reserved2; 2889 __le16 l_i_checksum_lo;/* crc32c(uuid+inum+inode) LE */
2890- __le16 l_i_reserved;
3047+ __le16 l_i_tag; /* Context Tag */ 2891+ __le16 l_i_tag; /* Context Tag */
3048+ __u16 l_i_reserved2;
3049 } linux2; 2892 } linux2;
3050 struct { 2893 struct {
3051 __le16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */ 2894 __le16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */
3052@@ -768,6 +773,7 @@ do { \ 2895@@ -781,6 +784,7 @@ do { \
3053 #define i_gid_low i_gid 2896 #define i_gid_low i_gid
3054 #define i_uid_high osd2.linux2.l_i_uid_high 2897 #define i_uid_high osd2.linux2.l_i_uid_high
3055 #define i_gid_high osd2.linux2.l_i_gid_high 2898 #define i_gid_high osd2.linux2.l_i_gid_high
3056+#define i_raw_tag osd2.linux2.l_i_tag 2899+#define i_raw_tag osd2.linux2.l_i_tag
3057 #define i_reserved2 osd2.linux2.l_i_reserved2 2900 #define i_checksum_lo osd2.linux2.l_i_checksum_lo
3058 2901
3059 #elif defined(__GNU__) 2902 #elif defined(__GNU__)
3060@@ -945,6 +951,7 @@ struct ext4_inode_info { 2903@@ -958,6 +962,7 @@ struct ext4_inode_info {
3061 #define EXT4_MOUNT_POSIX_ACL 0x08000 /* POSIX Access Control Lists */ 2904 #define EXT4_MOUNT_POSIX_ACL 0x08000 /* POSIX Access Control Lists */
3062 #define EXT4_MOUNT_NO_AUTO_DA_ALLOC 0x10000 /* No auto delalloc mapping */ 2905 #define EXT4_MOUNT_NO_AUTO_DA_ALLOC 0x10000 /* No auto delalloc mapping */
3063 #define EXT4_MOUNT_BARRIER 0x20000 /* Use block barriers */ 2906 #define EXT4_MOUNT_BARRIER 0x20000 /* Use block barriers */
@@ -3065,27 +2908,27 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/ext4.h linux-3.4.57-vs2.3.3.9/fs/ext4
3065 #define EXT4_MOUNT_QUOTA 0x80000 /* Some quota option set */ 2908 #define EXT4_MOUNT_QUOTA 0x80000 /* Some quota option set */
3066 #define EXT4_MOUNT_USRQUOTA 0x100000 /* "old" user quota */ 2909 #define EXT4_MOUNT_USRQUOTA 0x100000 /* "old" user quota */
3067 #define EXT4_MOUNT_GRPQUOTA 0x200000 /* "old" group quota */ 2910 #define EXT4_MOUNT_GRPQUOTA 0x200000 /* "old" group quota */
3068@@ -2294,6 +2301,7 @@ extern int ext4_map_blocks(handle_t *han 2911@@ -2538,6 +2543,7 @@ extern struct buffer_head *ext4_get_firs
3069 struct ext4_map_blocks *map, int flags); 2912 extern int ext4_inline_data_fiemap(struct inode *inode,
3070 extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, 2913 struct fiemap_extent_info *fieinfo,
3071 __u64 start, __u64 len); 2914 int *has_inline);
3072+extern int ext4_sync_flags(struct inode *, int, int); 2915+extern int ext4_sync_flags(struct inode *, int, int);
3073 /* move_extent.c */ 2916 extern int ext4_try_to_evict_inline_data(handle_t *handle,
3074 extern int ext4_move_extents(struct file *o_filp, struct file *d_filp, 2917 struct inode *inode,
3075 __u64 start_orig, __u64 start_donor, 2918 int needed);
3076diff -NurpP --minimal linux-3.4.57/fs/ext4/file.c linux-3.4.57-vs2.3.3.9/fs/ext4/file.c 2919diff -NurpP --minimal linux-3.10.17/fs/ext4/file.c linux-3.10.17-vs2.3.6.6/fs/ext4/file.c
3077--- linux-3.4.57/fs/ext4/file.c 2012-01-09 15:14:54.000000000 +0000 2920--- linux-3.10.17/fs/ext4/file.c 2013-10-25 15:17:43.000000000 +0000
3078+++ linux-3.4.57-vs2.3.3.9/fs/ext4/file.c 2012-05-21 16:15:05.000000000 +0000 2921+++ linux-3.10.17-vs2.3.6.6/fs/ext4/file.c 2013-08-22 20:29:59.000000000 +0000
3079@@ -258,5 +258,6 @@ const struct inode_operations ext4_file_ 2922@@ -651,5 +651,6 @@ const struct inode_operations ext4_file_
3080 #endif 2923 .removexattr = generic_removexattr,
3081 .get_acl = ext4_get_acl, 2924 .get_acl = ext4_get_acl,
3082 .fiemap = ext4_fiemap, 2925 .fiemap = ext4_fiemap,
3083+ .sync_flags = ext4_sync_flags, 2926+ .sync_flags = ext4_sync_flags,
3084 }; 2927 };
3085 2928
3086diff -NurpP --minimal linux-3.4.57/fs/ext4/ialloc.c linux-3.4.57-vs2.3.3.9/fs/ext4/ialloc.c 2929diff -NurpP --minimal linux-3.10.17/fs/ext4/ialloc.c linux-3.10.17-vs2.3.6.6/fs/ext4/ialloc.c
3087--- linux-3.4.57/fs/ext4/ialloc.c 2013-08-13 14:13:32.000000000 +0000 2930--- linux-3.10.17/fs/ext4/ialloc.c 2013-10-25 15:17:43.000000000 +0000
3088+++ linux-3.4.57-vs2.3.3.9/fs/ext4/ialloc.c 2013-07-14 13:38:34.000000000 +0000 2931+++ linux-3.10.17-vs2.3.6.6/fs/ext4/ialloc.c 2013-08-22 20:29:59.000000000 +0000
3089@@ -22,6 +22,7 @@ 2932@@ -22,6 +22,7 @@
3090 #include <linux/random.h> 2933 #include <linux/random.h>
3091 #include <linux/bitops.h> 2934 #include <linux/bitops.h>
@@ -3094,26 +2937,26 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/ialloc.c linux-3.4.57-vs2.3.3.9/fs/ex
3094 #include <asm/byteorder.h> 2937 #include <asm/byteorder.h>
3095 2938
3096 #include "ext4.h" 2939 #include "ext4.h"
3097@@ -815,6 +816,7 @@ got: 2940@@ -679,6 +680,7 @@ struct inode *__ext4_new_inode(handle_t
3098 inode->i_mode = mode; 2941 inode->i_mode = mode;
3099 inode->i_uid = current_fsuid(); 2942 inode->i_uid = current_fsuid();
3100 inode->i_gid = dir->i_gid; 2943 inode->i_gid = dir->i_gid;
3101+ inode->i_tag = dx_current_fstag(sb); 2944+ i_tag_write(inode, dx_current_fstag(sb));
3102 } else 2945 } else
3103 inode_init_owner(inode, dir, mode); 2946 inode_init_owner(inode, dir, mode);
3104 2947 dquot_initialize(inode);
3105diff -NurpP --minimal linux-3.4.57/fs/ext4/inode.c linux-3.4.57-vs2.3.3.9/fs/ext4/inode.c 2948diff -NurpP --minimal linux-3.10.17/fs/ext4/inode.c linux-3.10.17-vs2.3.6.6/fs/ext4/inode.c
3106--- linux-3.4.57/fs/ext4/inode.c 2013-08-13 14:13:32.000000000 +0000 2949--- linux-3.10.17/fs/ext4/inode.c 2013-10-25 15:17:43.000000000 +0000
3107+++ linux-3.4.57-vs2.3.3.9/fs/ext4/inode.c 2013-08-13 17:07:36.000000000 +0000 2950+++ linux-3.10.17-vs2.3.6.6/fs/ext4/inode.c 2013-10-09 17:37:22.000000000 +0000
3108@@ -37,6 +37,7 @@ 2951@@ -38,6 +38,7 @@
3109 #include <linux/printk.h>
3110 #include <linux/slab.h> 2952 #include <linux/slab.h>
3111 #include <linux/ratelimit.h> 2953 #include <linux/ratelimit.h>
2954 #include <linux/aio.h>
3112+#include <linux/vs_tag.h> 2955+#include <linux/vs_tag.h>
3113 2956
3114 #include "ext4_jbd2.h" 2957 #include "ext4_jbd2.h"
3115 #include "xattr.h" 2958 #include "xattr.h"
3116@@ -3585,41 +3586,64 @@ void ext4_set_inode_flags(struct inode * 2959@@ -4057,41 +4058,64 @@ void ext4_set_inode_flags(struct inode *
3117 { 2960 {
3118 unsigned int flags = EXT4_I(inode)->i_flags; 2961 unsigned int flags = EXT4_I(inode)->i_flags;
3119 2962
@@ -3185,95 +3028,53 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/inode.c linux-3.4.57-vs2.3.3.9/fs/ext
3185 } while (cmpxchg(&ei->i_flags, old_fl, new_fl) != old_fl); 3028 } while (cmpxchg(&ei->i_flags, old_fl, new_fl) != old_fl);
3186 } 3029 }
3187 3030
3188@@ -3655,6 +3679,8 @@ struct inode *ext4_iget(struct super_blo 3031@@ -4196,8 +4220,10 @@ struct inode *ext4_iget(struct super_blo
3189 journal_t *journal = EXT4_SB(sb)->s_journal; 3032 i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
3190 long ret; 3033 i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
3191 int block;
3192+ uid_t uid;
3193+ gid_t gid;
3194
3195 inode = iget_locked(sb, ino);
3196 if (!inode)
3197@@ -3670,12 +3696,16 @@ struct inode *ext4_iget(struct super_blo
3198 goto bad_inode;
3199 raw_inode = ext4_raw_inode(&iloc);
3200 inode->i_mode = le16_to_cpu(raw_inode->i_mode);
3201- inode->i_uid = (uid_t)le16_to_cpu(raw_inode->i_uid_low);
3202- inode->i_gid = (gid_t)le16_to_cpu(raw_inode->i_gid_low);
3203+ uid = (uid_t)le16_to_cpu(raw_inode->i_uid_low);
3204+ gid = (gid_t)le16_to_cpu(raw_inode->i_gid_low);
3205 if (!(test_opt(inode->i_sb, NO_UID32))) {
3206- inode->i_uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
3207- inode->i_gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
3208+ uid |= le16_to_cpu(raw_inode->i_uid_high) << 16;
3209+ gid |= le16_to_cpu(raw_inode->i_gid_high) << 16;
3210 } 3034 }
3211+ inode->i_uid = INOTAG_UID(DX_TAG(inode), uid, gid); 3035- i_uid_write(inode, i_uid);
3212+ inode->i_gid = INOTAG_GID(DX_TAG(inode), uid, gid); 3036- i_gid_write(inode, i_gid);
3213+ inode->i_tag = INOTAG_TAG(DX_TAG(inode), uid, gid, 3037+ i_uid_write(inode, INOTAG_UID(DX_TAG(inode), i_uid, i_gid));
3214+ le16_to_cpu(raw_inode->i_raw_tag)); 3038+ i_gid_write(inode, INOTAG_GID(DX_TAG(inode), i_uid, i_gid));
3039+ i_tag_write(inode, INOTAG_TAG(DX_TAG(inode), i_uid, i_gid,
3040+ le16_to_cpu(raw_inode->i_raw_tag)));
3215 set_nlink(inode, le16_to_cpu(raw_inode->i_links_count)); 3041 set_nlink(inode, le16_to_cpu(raw_inode->i_links_count));
3216 3042
3217 ext4_clear_state_flags(ei); /* Only relevant on 32-bit archs */ 3043 ext4_clear_state_flags(ei); /* Only relevant on 32-bit archs */
3218@@ -3894,6 +3924,8 @@ static int ext4_do_update_inode(handle_t 3044@@ -4425,8 +4451,10 @@ static int ext4_do_update_inode(handle_t
3219 struct ext4_inode *raw_inode = ext4_raw_inode(iloc); 3045
3220 struct ext4_inode_info *ei = EXT4_I(inode);
3221 struct buffer_head *bh = iloc->bh;
3222+ uid_t uid = TAGINO_UID(DX_TAG(inode), inode->i_uid, inode->i_tag);
3223+ gid_t gid = TAGINO_GID(DX_TAG(inode), inode->i_gid, inode->i_tag);
3224 int err = 0, rc, block;
3225 int need_datasync = 0;
3226
3227@@ -3905,29 +3937,32 @@ static int ext4_do_update_inode(handle_t
3228 ext4_get_inode_flags(ei); 3046 ext4_get_inode_flags(ei);
3229 raw_inode->i_mode = cpu_to_le16(inode->i_mode); 3047 raw_inode->i_mode = cpu_to_le16(inode->i_mode);
3048- i_uid = i_uid_read(inode);
3049- i_gid = i_gid_read(inode);
3050+ i_uid = from_kuid(&init_user_ns,
3051+ TAGINO_KUID(DX_TAG(inode), inode->i_uid, inode->i_tag));
3052+ i_gid = from_kgid(&init_user_ns,
3053+ TAGINO_KGID(DX_TAG(inode), inode->i_gid, inode->i_tag));
3230 if (!(test_opt(inode->i_sb, NO_UID32))) { 3054 if (!(test_opt(inode->i_sb, NO_UID32))) {
3231- raw_inode->i_uid_low = cpu_to_le16(low_16_bits(inode->i_uid)); 3055 raw_inode->i_uid_low = cpu_to_le16(low_16_bits(i_uid));
3232- raw_inode->i_gid_low = cpu_to_le16(low_16_bits(inode->i_gid)); 3056 raw_inode->i_gid_low = cpu_to_le16(low_16_bits(i_gid));
3233+ raw_inode->i_uid_low = cpu_to_le16(low_16_bits(uid)); 3057@@ -4449,6 +4477,9 @@ static int ext4_do_update_inode(handle_t
3234+ raw_inode->i_gid_low = cpu_to_le16(low_16_bits(gid));
3235 /*
3236 * Fix up interoperability with old kernels. Otherwise, old inodes get
3237 * re-used with the upper 16 bits of the uid/gid intact
3238 */
3239 if (!ei->i_dtime) {
3240 raw_inode->i_uid_high =
3241- cpu_to_le16(high_16_bits(inode->i_uid));
3242+ cpu_to_le16(high_16_bits(uid));
3243 raw_inode->i_gid_high =
3244- cpu_to_le16(high_16_bits(inode->i_gid));
3245+ cpu_to_le16(high_16_bits(gid));
3246 } else {
3247 raw_inode->i_uid_high = 0;
3248 raw_inode->i_gid_high = 0;
3249 }
3250 } else {
3251 raw_inode->i_uid_low =
3252- cpu_to_le16(fs_high2lowuid(inode->i_uid));
3253+ cpu_to_le16(fs_high2lowuid(uid));
3254 raw_inode->i_gid_low =
3255- cpu_to_le16(fs_high2lowgid(inode->i_gid));
3256+ cpu_to_le16(fs_high2lowgid(gid));
3257 raw_inode->i_uid_high = 0; 3058 raw_inode->i_uid_high = 0;
3258 raw_inode->i_gid_high = 0; 3059 raw_inode->i_gid_high = 0;
3259 } 3060 }
3260+#ifdef CONFIG_TAGGING_INTERN 3061+#ifdef CONFIG_TAGGING_INTERN
3261+ raw_inode->i_raw_tag = cpu_to_le16(inode->i_tag); 3062+ raw_inode->i_raw_tag = cpu_to_le16(i_tag_read(inode));
3262+#endif 3063+#endif
3263 raw_inode->i_links_count = cpu_to_le16(inode->i_nlink); 3064 raw_inode->i_links_count = cpu_to_le16(inode->i_nlink);
3264 3065
3265 EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode); 3066 EXT4_INODE_SET_XTIME(i_ctime, inode, raw_inode);
3266@@ -4114,7 +4149,8 @@ int ext4_setattr(struct dentry *dentry, 3067@@ -4679,7 +4710,8 @@ int ext4_setattr(struct dentry *dentry,
3267 if (is_quota_modification(inode, attr)) 3068 if (is_quota_modification(inode, attr))
3268 dquot_initialize(inode); 3069 dquot_initialize(inode);
3269 if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) || 3070 if ((ia_valid & ATTR_UID && !uid_eq(attr->ia_uid, inode->i_uid)) ||
3270- (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) { 3071- (ia_valid & ATTR_GID && !gid_eq(attr->ia_gid, inode->i_gid))) {
3271+ (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid) || 3072+ (ia_valid & ATTR_GID && !gid_eq(attr->ia_gid, inode->i_gid)) ||
3272+ (ia_valid & ATTR_TAG && attr->ia_tag != inode->i_tag)) { 3073+ (ia_valid & ATTR_TAG && !tag_eq(attr->ia_tag, inode->i_tag))) {
3273 handle_t *handle; 3074 handle_t *handle;
3274 3075
3275 /* (user+group)*(old+new) structure, inode write (sb, 3076 /* (user+group)*(old+new) structure, inode write (sb,
3276@@ -4136,6 +4172,8 @@ int ext4_setattr(struct dentry *dentry, 3077@@ -4702,6 +4734,8 @@ int ext4_setattr(struct dentry *dentry,
3277 inode->i_uid = attr->ia_uid; 3078 inode->i_uid = attr->ia_uid;
3278 if (attr->ia_valid & ATTR_GID) 3079 if (attr->ia_valid & ATTR_GID)
3279 inode->i_gid = attr->ia_gid; 3080 inode->i_gid = attr->ia_gid;
@@ -3282,10 +3083,10 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/inode.c linux-3.4.57-vs2.3.3.9/fs/ext
3282 error = ext4_mark_inode_dirty(handle, inode); 3083 error = ext4_mark_inode_dirty(handle, inode);
3283 ext4_journal_stop(handle); 3084 ext4_journal_stop(handle);
3284 } 3085 }
3285diff -NurpP --minimal linux-3.4.57/fs/ext4/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ext4/ioctl.c 3086diff -NurpP --minimal linux-3.10.17/fs/ext4/ioctl.c linux-3.10.17-vs2.3.6.6/fs/ext4/ioctl.c
3286--- linux-3.4.57/fs/ext4/ioctl.c 2013-08-13 14:13:33.000000000 +0000 3087--- linux-3.10.17/fs/ext4/ioctl.c 2013-10-25 15:17:43.000000000 +0000
3287+++ linux-3.4.57-vs2.3.3.9/fs/ext4/ioctl.c 2012-09-01 08:50:49.000000000 +0000 3088+++ linux-3.10.17-vs2.3.6.6/fs/ext4/ioctl.c 2013-08-22 22:22:39.000000000 +0000
3288@@ -14,12 +14,40 @@ 3089@@ -14,6 +14,7 @@
3289 #include <linux/compat.h> 3090 #include <linux/compat.h>
3290 #include <linux/mount.h> 3091 #include <linux/mount.h>
3291 #include <linux/file.h> 3092 #include <linux/file.h>
@@ -3293,8 +3094,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ext
3293 #include <asm/uaccess.h> 3094 #include <asm/uaccess.h>
3294 #include "ext4_jbd2.h" 3095 #include "ext4_jbd2.h"
3295 #include "ext4.h" 3096 #include "ext4.h"
3296 3097@@ -214,6 +215,33 @@ swap_boot_out:
3297 #define MAX_32_NUM ((((unsigned long long) 1) << 32) - 1) 3098 return err;
3099 }
3298 3100
3299+int ext4_sync_flags(struct inode *inode, int flags, int vflags) 3101+int ext4_sync_flags(struct inode *inode, int flags, int vflags)
3300+{ 3102+{
@@ -3302,7 +3104,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ext
3302+ struct ext4_iloc iloc; 3104+ struct ext4_iloc iloc;
3303+ int err; 3105+ int err;
3304+ 3106+
3305+ handle = ext4_journal_start(inode, 1); 3107+ handle = ext4_journal_start(inode, EXT4_HT_INODE, 1);
3306+ if (IS_ERR(handle)) 3108+ if (IS_ERR(handle))
3307+ return PTR_ERR(handle); 3109+ return PTR_ERR(handle);
3308+ 3110+
@@ -3325,8 +3127,8 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ext
3325+ 3127+
3326 long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) 3128 long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
3327 { 3129 {
3328 struct inode *inode = filp->f_dentry->d_inode; 3130 struct inode *inode = file_inode(filp);
3329@@ -53,6 +81,11 @@ long ext4_ioctl(struct file *filp, unsig 3131@@ -247,6 +275,11 @@ long ext4_ioctl(struct file *filp, unsig
3330 3132
3331 flags = ext4_mask_flags(inode->i_mode, flags); 3133 flags = ext4_mask_flags(inode->i_mode, flags);
3332 3134
@@ -3338,7 +3140,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ext
3338 err = -EPERM; 3140 err = -EPERM;
3339 mutex_lock(&inode->i_mutex); 3141 mutex_lock(&inode->i_mutex);
3340 /* Is it quota file? Do not allow user to mess with it */ 3142 /* Is it quota file? Do not allow user to mess with it */
3341@@ -70,7 +103,9 @@ long ext4_ioctl(struct file *filp, unsig 3143@@ -264,7 +297,9 @@ long ext4_ioctl(struct file *filp, unsig
3342 * 3144 *
3343 * This test looks nicer. Thanks to Pauline Middelink 3145 * This test looks nicer. Thanks to Pauline Middelink
3344 */ 3146 */
@@ -3349,9 +3151,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ext
3349 if (!capable(CAP_LINUX_IMMUTABLE)) 3151 if (!capable(CAP_LINUX_IMMUTABLE))
3350 goto flags_out; 3152 goto flags_out;
3351 } 3153 }
3352diff -NurpP --minimal linux-3.4.57/fs/ext4/namei.c linux-3.4.57-vs2.3.3.9/fs/ext4/namei.c 3154diff -NurpP --minimal linux-3.10.17/fs/ext4/namei.c linux-3.10.17-vs2.3.6.6/fs/ext4/namei.c
3353--- linux-3.4.57/fs/ext4/namei.c 2013-08-13 14:13:33.000000000 +0000 3155--- linux-3.10.17/fs/ext4/namei.c 2013-10-25 15:17:43.000000000 +0000
3354+++ linux-3.4.57-vs2.3.3.9/fs/ext4/namei.c 2013-08-13 17:07:36.000000000 +0000 3156+++ linux-3.10.17-vs2.3.6.6/fs/ext4/namei.c 2013-08-22 20:29:59.000000000 +0000
3355@@ -34,6 +34,7 @@ 3157@@ -34,6 +34,7 @@
3356 #include <linux/quotaops.h> 3158 #include <linux/quotaops.h>
3357 #include <linux/buffer_head.h> 3159 #include <linux/buffer_head.h>
@@ -3360,7 +3162,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/namei.c linux-3.4.57-vs2.3.3.9/fs/ext
3360 #include "ext4.h" 3162 #include "ext4.h"
3361 #include "ext4_jbd2.h" 3163 #include "ext4_jbd2.h"
3362 3164
3363@@ -922,6 +923,7 @@ restart: 3165@@ -1299,6 +1300,7 @@ restart:
3364 ll_rw_block(READ | REQ_META | REQ_PRIO, 3166 ll_rw_block(READ | REQ_META | REQ_PRIO,
3365 1, &bh); 3167 1, &bh);
3366 } 3168 }
@@ -3368,26 +3170,27 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/namei.c linux-3.4.57-vs2.3.3.9/fs/ext
3368 } 3170 }
3369 if ((bh = bh_use[ra_ptr++]) == NULL) 3171 if ((bh = bh_use[ra_ptr++]) == NULL)
3370 goto next; 3172 goto next;
3371@@ -2588,6 +2590,7 @@ const struct inode_operations ext4_dir_i 3173@@ -3177,6 +3179,7 @@ const struct inode_operations ext4_dir_i
3372 #endif 3174 .removexattr = generic_removexattr,
3373 .get_acl = ext4_get_acl, 3175 .get_acl = ext4_get_acl,
3374 .fiemap = ext4_fiemap, 3176 .fiemap = ext4_fiemap,
3375+ .sync_flags = ext4_sync_flags, 3177+ .sync_flags = ext4_sync_flags,
3376 }; 3178 };
3377 3179
3378 const struct inode_operations ext4_special_inode_operations = { 3180 const struct inode_operations ext4_special_inode_operations = {
3379diff -NurpP --minimal linux-3.4.57/fs/ext4/super.c linux-3.4.57-vs2.3.3.9/fs/ext4/super.c 3181diff -NurpP --minimal linux-3.10.17/fs/ext4/super.c linux-3.10.17-vs2.3.6.6/fs/ext4/super.c
3380--- linux-3.4.57/fs/ext4/super.c 2013-08-13 14:13:33.000000000 +0000 3182--- linux-3.10.17/fs/ext4/super.c 2013-10-25 15:17:43.000000000 +0000
3381+++ linux-3.4.57-vs2.3.3.9/fs/ext4/super.c 2013-07-14 13:38:34.000000000 +0000 3183+++ linux-3.10.17-vs2.3.6.6/fs/ext4/super.c 2013-08-22 20:29:59.000000000 +0000
3382@@ -1191,6 +1191,7 @@ enum { 3184@@ -1129,7 +1129,7 @@ enum {
3383 Opt_inode_readahead_blks, Opt_journal_ioprio, 3185 Opt_inode_readahead_blks, Opt_journal_ioprio,
3384 Opt_dioread_nolock, Opt_dioread_lock, 3186 Opt_dioread_nolock, Opt_dioread_lock,
3385 Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable, 3187 Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable,
3386+ Opt_tag, Opt_notag, Opt_tagid 3188- Opt_max_dir_size_kb,
3189+ Opt_max_dir_size_kb, Opt_tag, Opt_notag, Opt_tagid
3387 }; 3190 };
3388 3191
3389 static const match_table_t tokens = { 3192 static const match_table_t tokens = {
3390@@ -1269,6 +1270,9 @@ static const match_table_t tokens = { 3193@@ -1209,6 +1209,9 @@ static const match_table_t tokens = {
3391 {Opt_removed, "reservation"}, /* mount option from ext2/3 */ 3194 {Opt_removed, "reservation"}, /* mount option from ext2/3 */
3392 {Opt_removed, "noreservation"}, /* mount option from ext2/3 */ 3195 {Opt_removed, "noreservation"}, /* mount option from ext2/3 */
3393 {Opt_removed, "journal=%u"}, /* mount option from ext2/3 */ 3196 {Opt_removed, "journal=%u"}, /* mount option from ext2/3 */
@@ -3397,9 +3200,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/super.c linux-3.4.57-vs2.3.3.9/fs/ext
3397 {Opt_err, NULL}, 3200 {Opt_err, NULL},
3398 }; 3201 };
3399 3202
3400@@ -1503,6 +1507,20 @@ static int handle_mount_opt(struct super 3203@@ -1439,6 +1442,20 @@ static int handle_mount_opt(struct super
3401 return -1; 3204 case Opt_i_version:
3402 *journal_ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, arg); 3205 sb->s_flags |= MS_I_VERSION;
3403 return 1; 3206 return 1;
3404+#ifndef CONFIG_TAGGING_NONE 3207+#ifndef CONFIG_TAGGING_NONE
3405+ case Opt_tag: 3208+ case Opt_tag:
@@ -3417,8 +3220,8 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/super.c linux-3.4.57-vs2.3.3.9/fs/ext
3417+#endif 3220+#endif
3418 } 3221 }
3419 3222
3420 for (m = ext4_mount_opts; m->token != Opt_err; m++) { 3223 for (m = ext4_mount_opts; m->token != Opt_err; m++)
3421@@ -3239,6 +3257,9 @@ static int ext4_fill_super(struct super_ 3224@@ -3452,6 +3469,9 @@ static int ext4_fill_super(struct super_
3422 clear_opt(sb, DELALLOC); 3225 clear_opt(sb, DELALLOC);
3423 } 3226 }
3424 3227
@@ -3428,7 +3231,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/super.c linux-3.4.57-vs2.3.3.9/fs/ext
3428 sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | 3231 sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
3429 (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0); 3232 (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
3430 3233
3431@@ -4400,6 +4421,14 @@ static int ext4_remount(struct super_blo 3234@@ -4664,6 +4684,14 @@ static int ext4_remount(struct super_blo
3432 if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED) 3235 if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED)
3433 ext4_abort(sb, "Abort forced by user"); 3236 ext4_abort(sb, "Abort forced by user");
3434 3237
@@ -3443,47 +3246,38 @@ diff -NurpP --minimal linux-3.4.57/fs/ext4/super.c linux-3.4.57-vs2.3.3.9/fs/ext
3443 sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | 3246 sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
3444 (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0); 3247 (test_opt(sb, POSIX_ACL) ? MS_POSIXACL : 0);
3445 3248
3446diff -NurpP --minimal linux-3.4.57/fs/fcntl.c linux-3.4.57-vs2.3.3.9/fs/fcntl.c 3249diff -NurpP --minimal linux-3.10.17/fs/fcntl.c linux-3.10.17-vs2.3.6.6/fs/fcntl.c
3447--- linux-3.4.57/fs/fcntl.c 2012-05-21 16:07:20.000000000 +0000 3250--- linux-3.10.17/fs/fcntl.c 2013-05-31 13:45:23.000000000 +0000
3448+++ linux-3.4.57-vs2.3.3.9/fs/fcntl.c 2012-05-21 16:15:05.000000000 +0000 3251+++ linux-3.10.17-vs2.3.6.6/fs/fcntl.c 2013-08-22 20:29:59.000000000 +0000
3449@@ -20,6 +20,7 @@ 3252@@ -21,6 +21,7 @@
3450 #include <linux/signal.h>
3451 #include <linux/rcupdate.h> 3253 #include <linux/rcupdate.h>
3452 #include <linux/pid_namespace.h> 3254 #include <linux/pid_namespace.h>
3255 #include <linux/user_namespace.h>
3453+#include <linux/vs_limit.h> 3256+#include <linux/vs_limit.h>
3454 3257
3455 #include <asm/poll.h> 3258 #include <asm/poll.h>
3456 #include <asm/siginfo.h> 3259 #include <asm/siginfo.h>
3457@@ -103,6 +104,8 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldf 3260@@ -378,6 +379,8 @@ SYSCALL_DEFINE3(fcntl64, unsigned int, f
3458 3261
3459 if (tofree) 3262 if (!f.file)
3460 filp_close(tofree, files);
3461+ else
3462+ vx_openfd_inc(newfd); /* fd was unused */
3463
3464 return newfd;
3465
3466@@ -447,6 +450,8 @@ SYSCALL_DEFINE3(fcntl, unsigned int, fd,
3467 filp = fget_raw(fd);
3468 if (!filp)
3469 goto out; 3263 goto out;
3470+ if (!vx_files_avail(1)) 3264+ if (!vx_files_avail(1))
3471+ goto out; 3265+ goto out;
3472 3266
3473 if (unlikely(filp->f_mode & FMODE_PATH)) { 3267 if (unlikely(f.file->f_mode & FMODE_PATH)) {
3474 if (!check_fcntl_cmd(cmd)) { 3268 if (!check_fcntl_cmd(cmd))
3475diff -NurpP --minimal linux-3.4.57/fs/file.c linux-3.4.57-vs2.3.3.9/fs/file.c 3269diff -NurpP --minimal linux-3.10.17/fs/file.c linux-3.10.17-vs2.3.6.6/fs/file.c
3476--- linux-3.4.57/fs/file.c 2012-05-21 16:07:20.000000000 +0000 3270--- linux-3.10.17/fs/file.c 2013-07-14 17:01:28.000000000 +0000
3477+++ linux-3.4.57-vs2.3.3.9/fs/file.c 2012-05-21 16:15:05.000000000 +0000 3271+++ linux-3.10.17-vs2.3.6.6/fs/file.c 2013-08-22 20:29:59.000000000 +0000
3478@@ -21,6 +21,7 @@ 3272@@ -22,6 +22,7 @@
3479 #include <linux/spinlock.h> 3273 #include <linux/spinlock.h>
3480 #include <linux/rcupdate.h> 3274 #include <linux/rcupdate.h>
3481 #include <linux/workqueue.h> 3275 #include <linux/workqueue.h>
3482+#include <linux/vs_limit.h> 3276+#include <linux/vs_limit.h>
3483 3277
3484 struct fdtable_defer { 3278 int sysctl_nr_open __read_mostly = 1024*1024;
3485 spinlock_t lock; 3279 int sysctl_nr_open_min = BITS_PER_LONG;
3486@@ -358,6 +359,8 @@ struct files_struct *dup_fd(struct files 3280@@ -311,6 +312,8 @@ struct files_struct *dup_fd(struct files
3487 struct file *f = *old_fds++; 3281 struct file *f = *old_fds++;
3488 if (f) { 3282 if (f) {
3489 get_file(f); 3283 get_file(f);
@@ -3492,7 +3286,19 @@ diff -NurpP --minimal linux-3.4.57/fs/file.c linux-3.4.57-vs2.3.3.9/fs/file.c
3492 } else { 3286 } else {
3493 /* 3287 /*
3494 * The fd may be claimed in the fd bitmap but not yet 3288 * The fd may be claimed in the fd bitmap but not yet
3495@@ -464,6 +467,7 @@ repeat: 3289@@ -376,9 +379,11 @@ static void close_files(struct files_str
3290 filp_close(file, files);
3291 cond_resched();
3292 }
3293+ vx_openfd_dec(i);
3294 }
3295 i++;
3296 set >>= 1;
3297+ cond_resched();
3298 }
3299 }
3300 }
3301@@ -503,6 +508,7 @@ repeat:
3496 else 3302 else
3497 __clear_close_on_exec(fd, fdt); 3303 __clear_close_on_exec(fd, fdt);
3498 error = fd; 3304 error = fd;
@@ -3500,19 +3306,36 @@ diff -NurpP --minimal linux-3.4.57/fs/file.c linux-3.4.57-vs2.3.3.9/fs/file.c
3500 #if 1 3306 #if 1
3501 /* Sanity check */ 3307 /* Sanity check */
3502 if (rcu_dereference_raw(fdt->fd[fd]) != NULL) { 3308 if (rcu_dereference_raw(fdt->fd[fd]) != NULL) {
3503diff -NurpP --minimal linux-3.4.57/fs/file_table.c linux-3.4.57-vs2.3.3.9/fs/file_table.c 3309@@ -533,6 +539,7 @@ static void __put_unused_fd(struct files
3504--- linux-3.4.57/fs/file_table.c 2012-05-21 16:07:20.000000000 +0000 3310 __clear_open_fd(fd, fdt);
3505+++ linux-3.4.57-vs2.3.3.9/fs/file_table.c 2012-05-21 16:15:05.000000000 +0000 3311 if (fd < files->next_fd)
3506@@ -24,6 +24,8 @@ 3312 files->next_fd = fd;
3507 #include <linux/percpu_counter.h> 3313+ vx_openfd_dec(fd);
3508 #include <linux/percpu.h> 3314 }
3315
3316 void put_unused_fd(unsigned int fd)
3317@@ -812,6 +819,8 @@ static int do_dup2(struct files_struct *
3318
3319 if (tofree)
3320 filp_close(tofree, files);
3321+ else
3322+ vx_openfd_inc(fd); /* fd was unused */
3323
3324 return fd;
3325
3326diff -NurpP --minimal linux-3.10.17/fs/file_table.c linux-3.10.17-vs2.3.6.6/fs/file_table.c
3327--- linux-3.10.17/fs/file_table.c 2013-07-14 17:01:28.000000000 +0000
3328+++ linux-3.10.17-vs2.3.6.6/fs/file_table.c 2013-08-22 20:29:59.000000000 +0000
3329@@ -26,6 +26,8 @@
3330 #include <linux/hardirq.h>
3331 #include <linux/task_work.h>
3509 #include <linux/ima.h> 3332 #include <linux/ima.h>
3510+#include <linux/vs_limit.h> 3333+#include <linux/vs_limit.h>
3511+#include <linux/vs_context.h> 3334+#include <linux/vs_context.h>
3512 3335
3513 #include <linux/atomic.h> 3336 #include <linux/atomic.h>
3514 3337
3515@@ -135,6 +137,8 @@ struct file *get_empty_filp(void) 3338@@ -140,6 +142,8 @@ struct file *get_empty_filp(void)
3516 spin_lock_init(&f->f_lock); 3339 spin_lock_init(&f->f_lock);
3517 eventpoll_init_file(f); 3340 eventpoll_init_file(f);
3518 /* f->f_version: 0 */ 3341 /* f->f_version: 0 */
@@ -3521,16 +3344,16 @@ diff -NurpP --minimal linux-3.4.57/fs/file_table.c linux-3.4.57-vs2.3.3.9/fs/fil
3521 return f; 3344 return f;
3522 3345
3523 over: 3346 over:
3524@@ -252,6 +256,8 @@ static void __fput(struct file *file) 3347@@ -257,6 +261,8 @@ static void __fput(struct file *file)
3525 } 3348 i_readcount_dec(inode);
3526 fops_put(file->f_op); 3349 if (file->f_mode & FMODE_WRITE)
3527 put_pid(file->f_owner.pid); 3350 drop_file_write_access(file);
3528+ vx_files_dec(file); 3351+ vx_files_dec(file);
3529+ file->f_xid = 0; 3352+ file->f_xid = 0;
3530 file_sb_list_del(file); 3353 file->f_path.dentry = NULL;
3531 if ((file->f_mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ) 3354 file->f_path.mnt = NULL;
3532 i_readcount_dec(inode); 3355 file->f_inode = NULL;
3533@@ -382,6 +388,8 @@ void put_filp(struct file *file) 3356@@ -345,6 +351,8 @@ void put_filp(struct file *file)
3534 { 3357 {
3535 if (atomic_long_dec_and_test(&file->f_count)) { 3358 if (atomic_long_dec_and_test(&file->f_count)) {
3536 security_file_free(file); 3359 security_file_free(file);
@@ -3539,9 +3362,9 @@ diff -NurpP --minimal linux-3.4.57/fs/file_table.c linux-3.4.57-vs2.3.3.9/fs/fil
3539 file_sb_list_del(file); 3362 file_sb_list_del(file);
3540 file_free(file); 3363 file_free(file);
3541 } 3364 }
3542diff -NurpP --minimal linux-3.4.57/fs/fs_struct.c linux-3.4.57-vs2.3.3.9/fs/fs_struct.c 3365diff -NurpP --minimal linux-3.10.17/fs/fs_struct.c linux-3.10.17-vs2.3.6.6/fs/fs_struct.c
3543--- linux-3.4.57/fs/fs_struct.c 2012-05-21 16:07:20.000000000 +0000 3366--- linux-3.10.17/fs/fs_struct.c 2013-05-31 13:45:23.000000000 +0000
3544+++ linux-3.4.57-vs2.3.3.9/fs/fs_struct.c 2012-05-21 16:15:05.000000000 +0000 3367+++ linux-3.10.17-vs2.3.6.6/fs/fs_struct.c 2013-08-22 20:29:59.000000000 +0000
3545@@ -4,6 +4,7 @@ 3368@@ -4,6 +4,7 @@
3546 #include <linux/path.h> 3369 #include <linux/path.h>
3547 #include <linux/slab.h> 3370 #include <linux/slab.h>
@@ -3549,39 +3372,39 @@ diff -NurpP --minimal linux-3.4.57/fs/fs_struct.c linux-3.4.57-vs2.3.3.9/fs/fs_s
3549+#include <linux/vserver/global.h> 3372+#include <linux/vserver/global.h>
3550 #include "internal.h" 3373 #include "internal.h"
3551 3374
3552 static inline void path_get_longterm(struct path *path) 3375 /*
3553@@ -99,6 +100,7 @@ void free_fs_struct(struct fs_struct *fs 3376@@ -87,6 +88,7 @@ void free_fs_struct(struct fs_struct *fs
3554 { 3377 {
3555 path_put_longterm(&fs->root); 3378 path_put(&fs->root);
3556 path_put_longterm(&fs->pwd); 3379 path_put(&fs->pwd);
3557+ atomic_dec(&vs_global_fs); 3380+ atomic_dec(&vs_global_fs);
3558 kmem_cache_free(fs_cachep, fs); 3381 kmem_cache_free(fs_cachep, fs);
3559 } 3382 }
3560 3383
3561@@ -136,6 +138,7 @@ struct fs_struct *copy_fs_struct(struct 3384@@ -124,6 +126,7 @@ struct fs_struct *copy_fs_struct(struct
3562 fs->pwd = old->pwd; 3385 fs->pwd = old->pwd;
3563 path_get_longterm(&fs->pwd); 3386 path_get(&fs->pwd);
3564 spin_unlock(&old->lock); 3387 spin_unlock(&old->lock);
3565+ atomic_inc(&vs_global_fs); 3388+ atomic_inc(&vs_global_fs);
3566 } 3389 }
3567 return fs; 3390 return fs;
3568 } 3391 }
3569diff -NurpP --minimal linux-3.4.57/fs/gfs2/file.c linux-3.4.57-vs2.3.3.9/fs/gfs2/file.c 3392diff -NurpP --minimal linux-3.10.17/fs/gfs2/file.c linux-3.10.17-vs2.3.6.6/fs/gfs2/file.c
3570--- linux-3.4.57/fs/gfs2/file.c 2012-05-21 16:07:20.000000000 +0000 3393--- linux-3.10.17/fs/gfs2/file.c 2013-07-14 17:01:28.000000000 +0000
3571+++ linux-3.4.57-vs2.3.3.9/fs/gfs2/file.c 2012-05-21 16:15:05.000000000 +0000 3394+++ linux-3.10.17-vs2.3.6.6/fs/gfs2/file.c 2013-08-22 20:29:59.000000000 +0000
3572@@ -142,6 +142,9 @@ static const u32 fsflags_to_gfs2[32] = { 3395@@ -144,6 +144,9 @@ static const u32 fsflags_to_gfs2[32] = {
3573 [7] = GFS2_DIF_NOATIME,
3574 [12] = GFS2_DIF_EXHASH, 3396 [12] = GFS2_DIF_EXHASH,
3575 [14] = GFS2_DIF_INHERIT_JDATA, 3397 [14] = GFS2_DIF_INHERIT_JDATA,
3398 [17] = GFS2_DIF_TOPDIR,
3576+ [27] = GFS2_DIF_IXUNLINK, 3399+ [27] = GFS2_DIF_IXUNLINK,
3577+ [26] = GFS2_DIF_BARRIER, 3400+ [26] = GFS2_DIF_BARRIER,
3578+ [29] = GFS2_DIF_COW, 3401+ [29] = GFS2_DIF_COW,
3579 }; 3402 };
3580 3403
3581 static const u32 gfs2_to_fsflags[32] = { 3404 static const u32 gfs2_to_fsflags[32] = {
3582@@ -151,6 +154,9 @@ static const u32 gfs2_to_fsflags[32] = { 3405@@ -154,6 +157,9 @@ static const u32 gfs2_to_fsflags[32] = {
3583 [gfs2fl_NoAtime] = FS_NOATIME_FL,
3584 [gfs2fl_ExHash] = FS_INDEX_FL, 3406 [gfs2fl_ExHash] = FS_INDEX_FL,
3407 [gfs2fl_TopLevel] = FS_TOPDIR_FL,
3585 [gfs2fl_InheritJdata] = FS_JOURNAL_DATA_FL, 3408 [gfs2fl_InheritJdata] = FS_JOURNAL_DATA_FL,
3586+ [gfs2fl_IXUnlink] = FS_IXUNLINK_FL, 3409+ [gfs2fl_IXUnlink] = FS_IXUNLINK_FL,
3587+ [gfs2fl_Barrier] = FS_BARRIER_FL, 3410+ [gfs2fl_Barrier] = FS_BARRIER_FL,
@@ -3589,7 +3412,7 @@ diff -NurpP --minimal linux-3.4.57/fs/gfs2/file.c linux-3.4.57-vs2.3.3.9/fs/gfs2
3589 }; 3412 };
3590 3413
3591 static int gfs2_get_flags(struct file *filp, u32 __user *ptr) 3414 static int gfs2_get_flags(struct file *filp, u32 __user *ptr)
3592@@ -181,12 +187,18 @@ void gfs2_set_inode_flags(struct inode * 3415@@ -184,12 +190,18 @@ void gfs2_set_inode_flags(struct inode *
3593 { 3416 {
3594 struct gfs2_inode *ip = GFS2_I(inode); 3417 struct gfs2_inode *ip = GFS2_I(inode);
3595 unsigned int flags = inode->i_flags; 3418 unsigned int flags = inode->i_flags;
@@ -3609,7 +3432,7 @@ diff -NurpP --minimal linux-3.4.57/fs/gfs2/file.c linux-3.4.57-vs2.3.3.9/fs/gfs2
3609 if (ip->i_diskflags & GFS2_DIF_APPENDONLY) 3432 if (ip->i_diskflags & GFS2_DIF_APPENDONLY)
3610 flags |= S_APPEND; 3433 flags |= S_APPEND;
3611 if (ip->i_diskflags & GFS2_DIF_NOATIME) 3434 if (ip->i_diskflags & GFS2_DIF_NOATIME)
3612@@ -194,6 +206,43 @@ void gfs2_set_inode_flags(struct inode * 3435@@ -197,6 +209,43 @@ void gfs2_set_inode_flags(struct inode *
3613 if (ip->i_diskflags & GFS2_DIF_SYNC) 3436 if (ip->i_diskflags & GFS2_DIF_SYNC)
3614 flags |= S_SYNC; 3437 flags |= S_SYNC;
3615 inode->i_flags = flags; 3438 inode->i_flags = flags;
@@ -3653,7 +3476,7 @@ diff -NurpP --minimal linux-3.4.57/fs/gfs2/file.c linux-3.4.57-vs2.3.3.9/fs/gfs2
3653 } 3476 }
3654 3477
3655 /* Flags that can be set by user space */ 3478 /* Flags that can be set by user space */
3656@@ -305,6 +354,37 @@ static int gfs2_set_flags(struct file *f 3479@@ -310,6 +359,37 @@ static int gfs2_set_flags(struct file *f
3657 return do_gfs2_set_flags(filp, gfsflags, ~GFS2_DIF_JDATA); 3480 return do_gfs2_set_flags(filp, gfsflags, ~GFS2_DIF_JDATA);
3658 } 3481 }
3659 3482
@@ -3674,7 +3497,7 @@ diff -NurpP --minimal linux-3.4.57/fs/gfs2/file.c linux-3.4.57-vs2.3.3.9/fs/gfs2
3674+ error = gfs2_meta_inode_buffer(ip, &bh); 3497+ error = gfs2_meta_inode_buffer(ip, &bh);
3675+ if (error) 3498+ if (error)
3676+ goto out_trans_end; 3499+ goto out_trans_end;
3677+ gfs2_trans_add_bh(ip->i_gl, bh, 1); 3500+ gfs2_trans_add_meta(ip->i_gl, bh);
3678+ inode->i_flags = flags; 3501+ inode->i_flags = flags;
3679+ inode->i_vflags = vflags; 3502+ inode->i_vflags = vflags;
3680+ gfs2_get_inode_flags(inode); 3503+ gfs2_get_inode_flags(inode);
@@ -3691,10 +3514,10 @@ diff -NurpP --minimal linux-3.4.57/fs/gfs2/file.c linux-3.4.57-vs2.3.3.9/fs/gfs2
3691 static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) 3514 static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
3692 { 3515 {
3693 switch(cmd) { 3516 switch(cmd) {
3694diff -NurpP --minimal linux-3.4.57/fs/gfs2/inode.h linux-3.4.57-vs2.3.3.9/fs/gfs2/inode.h 3517diff -NurpP --minimal linux-3.10.17/fs/gfs2/inode.h linux-3.10.17-vs2.3.6.6/fs/gfs2/inode.h
3695--- linux-3.4.57/fs/gfs2/inode.h 2012-01-09 15:14:54.000000000 +0000 3518--- linux-3.10.17/fs/gfs2/inode.h 2012-12-11 03:30:57.000000000 +0000
3696+++ linux-3.4.57-vs2.3.3.9/fs/gfs2/inode.h 2012-05-21 16:15:05.000000000 +0000 3519+++ linux-3.10.17-vs2.3.6.6/fs/gfs2/inode.h 2013-08-22 20:29:59.000000000 +0000
3697@@ -120,6 +120,7 @@ extern const struct file_operations gfs2 3520@@ -117,6 +117,7 @@ extern const struct file_operations gfs2
3698 extern const struct file_operations gfs2_dir_fops_nolock; 3521 extern const struct file_operations gfs2_dir_fops_nolock;
3699 3522
3700 extern void gfs2_set_inode_flags(struct inode *inode); 3523 extern void gfs2_set_inode_flags(struct inode *inode);
@@ -3702,9 +3525,20 @@ diff -NurpP --minimal linux-3.4.57/fs/gfs2/inode.h linux-3.4.57-vs2.3.3.9/fs/gfs
3702 3525
3703 #ifdef CONFIG_GFS2_FS_LOCKING_DLM 3526 #ifdef CONFIG_GFS2_FS_LOCKING_DLM
3704 extern const struct file_operations gfs2_file_fops; 3527 extern const struct file_operations gfs2_file_fops;
3705diff -NurpP --minimal linux-3.4.57/fs/inode.c linux-3.4.57-vs2.3.3.9/fs/inode.c 3528diff -NurpP --minimal linux-3.10.17/fs/hostfs/hostfs.h linux-3.10.17-vs2.3.6.6/fs/hostfs/hostfs.h
3706--- linux-3.4.57/fs/inode.c 2013-08-13 14:13:33.000000000 +0000 3529--- linux-3.10.17/fs/hostfs/hostfs.h 2012-12-11 03:30:57.000000000 +0000
3707+++ linux-3.4.57-vs2.3.3.9/fs/inode.c 2013-07-14 13:38:34.000000000 +0000 3530+++ linux-3.10.17-vs2.3.6.6/fs/hostfs/hostfs.h 2013-08-22 20:29:59.000000000 +0000
3531@@ -42,6 +42,7 @@ struct hostfs_iattr {
3532 unsigned short ia_mode;
3533 uid_t ia_uid;
3534 gid_t ia_gid;
3535+ vtag_t ia_tag;
3536 loff_t ia_size;
3537 struct timespec ia_atime;
3538 struct timespec ia_mtime;
3539diff -NurpP --minimal linux-3.10.17/fs/inode.c linux-3.10.17-vs2.3.6.6/fs/inode.c
3540--- linux-3.10.17/fs/inode.c 2013-07-14 17:01:28.000000000 +0000
3541+++ linux-3.10.17-vs2.3.6.6/fs/inode.c 2013-08-22 20:29:59.000000000 +0000
3708@@ -17,6 +17,7 @@ 3542@@ -17,6 +17,7 @@
3709 #include <linux/prefetch.h> 3543 #include <linux/prefetch.h>
3710 #include <linux/buffer_head.h> /* for inode_has_buffers */ 3544 #include <linux/buffer_head.h> /* for inode_has_buffers */
@@ -3713,16 +3547,23 @@ diff -NurpP --minimal linux-3.4.57/fs/inode.c linux-3.4.57-vs2.3.3.9/fs/inode.c
3713 #include "internal.h" 3547 #include "internal.h"
3714 3548
3715 /* 3549 /*
3716@@ -128,6 +129,9 @@ int inode_init_always(struct super_block 3550@@ -128,6 +129,8 @@ int inode_init_always(struct super_block
3717 struct address_space *const mapping = &inode->i_data; 3551 struct address_space *const mapping = &inode->i_data;
3718 3552
3719 inode->i_sb = sb; 3553 inode->i_sb = sb;
3720+ 3554+
3721+ /* essential because of inode slab reuse */ 3555+ /* essential because of inode slab reuse */
3722+ inode->i_tag = 0;
3723 inode->i_blkbits = sb->s_blocksize_bits; 3556 inode->i_blkbits = sb->s_blocksize_bits;
3724 inode->i_flags = 0; 3557 inode->i_flags = 0;
3725 atomic_set(&inode->i_count, 1); 3558 atomic_set(&inode->i_count, 1);
3559@@ -137,6 +140,7 @@ int inode_init_always(struct super_block
3560 inode->i_opflags = 0;
3561 i_uid_write(inode, 0);
3562 i_gid_write(inode, 0);
3563+ i_tag_write(inode, 0);
3564 atomic_set(&inode->i_writecount, 0);
3565 inode->i_size = 0;
3566 inode->i_blocks = 0;
3726@@ -149,6 +153,7 @@ int inode_init_always(struct super_block 3567@@ -149,6 +153,7 @@ int inode_init_always(struct super_block
3727 inode->i_bdev = NULL; 3568 inode->i_bdev = NULL;
3728 inode->i_cdev = NULL; 3569 inode->i_cdev = NULL;
@@ -3731,7 +3572,7 @@ diff -NurpP --minimal linux-3.4.57/fs/inode.c linux-3.4.57-vs2.3.3.9/fs/inode.c
3731 inode->dirtied_when = 0; 3572 inode->dirtied_when = 0;
3732 3573
3733 if (security_inode_alloc(inode)) 3574 if (security_inode_alloc(inode))
3734@@ -470,6 +475,8 @@ void __insert_inode_hash(struct inode *i 3575@@ -483,6 +488,8 @@ void __insert_inode_hash(struct inode *i
3735 } 3576 }
3736 EXPORT_SYMBOL(__insert_inode_hash); 3577 EXPORT_SYMBOL(__insert_inode_hash);
3737 3578
@@ -3740,7 +3581,7 @@ diff -NurpP --minimal linux-3.4.57/fs/inode.c linux-3.4.57-vs2.3.3.9/fs/inode.c
3740 /** 3581 /**
3741 * __remove_inode_hash - remove an inode from the hash 3582 * __remove_inode_hash - remove an inode from the hash
3742 * @inode: inode to unhash 3583 * @inode: inode to unhash
3743@@ -1689,9 +1696,11 @@ void init_special_inode(struct inode *in 3584@@ -1799,9 +1806,11 @@ void init_special_inode(struct inode *in
3744 if (S_ISCHR(mode)) { 3585 if (S_ISCHR(mode)) {
3745 inode->i_fop = &def_chr_fops; 3586 inode->i_fop = &def_chr_fops;
3746 inode->i_rdev = rdev; 3587 inode->i_rdev = rdev;
@@ -3750,19 +3591,19 @@ diff -NurpP --minimal linux-3.4.57/fs/inode.c linux-3.4.57-vs2.3.3.9/fs/inode.c
3750 inode->i_rdev = rdev; 3591 inode->i_rdev = rdev;
3751+ inode->i_mdev = rdev; 3592+ inode->i_mdev = rdev;
3752 } else if (S_ISFIFO(mode)) 3593 } else if (S_ISFIFO(mode))
3753 inode->i_fop = &def_fifo_fops; 3594 inode->i_fop = &pipefifo_fops;
3754 else if (S_ISSOCK(mode)) 3595 else if (S_ISSOCK(mode))
3755@@ -1720,6 +1729,7 @@ void inode_init_owner(struct inode *inod 3596@@ -1830,6 +1839,7 @@ void inode_init_owner(struct inode *inod
3756 } else 3597 } else
3757 inode->i_gid = current_fsgid(); 3598 inode->i_gid = current_fsgid();
3758 inode->i_mode = mode; 3599 inode->i_mode = mode;
3759+ inode->i_tag = dx_current_fstag(inode->i_sb); 3600+ i_tag_write(inode, dx_current_fstag(inode->i_sb));
3760 } 3601 }
3761 EXPORT_SYMBOL(inode_init_owner); 3602 EXPORT_SYMBOL(inode_init_owner);
3762 3603
3763diff -NurpP --minimal linux-3.4.57/fs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ioctl.c 3604diff -NurpP --minimal linux-3.10.17/fs/ioctl.c linux-3.10.17-vs2.3.6.6/fs/ioctl.c
3764--- linux-3.4.57/fs/ioctl.c 2012-05-21 16:07:24.000000000 +0000 3605--- linux-3.10.17/fs/ioctl.c 2013-05-31 13:45:24.000000000 +0000
3765+++ linux-3.4.57-vs2.3.3.9/fs/ioctl.c 2012-05-21 16:15:05.000000000 +0000 3606+++ linux-3.10.17-vs2.3.6.6/fs/ioctl.c 2013-08-22 20:29:59.000000000 +0000
3766@@ -15,6 +15,9 @@ 3607@@ -15,6 +15,9 @@
3767 #include <linux/writeback.h> 3608 #include <linux/writeback.h>
3768 #include <linux/buffer_head.h> 3609 #include <linux/buffer_head.h>
@@ -3773,9 +3614,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ioctl.c
3773 3614
3774 #include <asm/ioctls.h> 3615 #include <asm/ioctls.h>
3775 3616
3776diff -NurpP --minimal linux-3.4.57/fs/ioprio.c linux-3.4.57-vs2.3.3.9/fs/ioprio.c 3617diff -NurpP --minimal linux-3.10.17/fs/ioprio.c linux-3.10.17-vs2.3.6.6/fs/ioprio.c
3777--- linux-3.4.57/fs/ioprio.c 2012-03-19 18:47:25.000000000 +0000 3618--- linux-3.10.17/fs/ioprio.c 2012-12-11 03:30:57.000000000 +0000
3778+++ linux-3.4.57-vs2.3.3.9/fs/ioprio.c 2012-05-21 16:15:05.000000000 +0000 3619+++ linux-3.10.17-vs2.3.6.6/fs/ioprio.c 2013-08-22 20:29:59.000000000 +0000
3779@@ -28,6 +28,7 @@ 3620@@ -28,6 +28,7 @@
3780 #include <linux/syscalls.h> 3621 #include <linux/syscalls.h>
3781 #include <linux/security.h> 3622 #include <linux/security.h>
@@ -3784,7 +3625,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ioprio.c linux-3.4.57-vs2.3.3.9/fs/ioprio.
3784 3625
3785 int set_task_ioprio(struct task_struct *task, int ioprio) 3626 int set_task_ioprio(struct task_struct *task, int ioprio)
3786 { 3627 {
3787@@ -104,6 +105,8 @@ SYSCALL_DEFINE3(ioprio_set, int, which, 3628@@ -105,6 +106,8 @@ SYSCALL_DEFINE3(ioprio_set, int, which,
3788 else 3629 else
3789 pgrp = find_vpid(who); 3630 pgrp = find_vpid(who);
3790 do_each_pid_thread(pgrp, PIDTYPE_PGID, p) { 3631 do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -3793,7 +3634,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ioprio.c linux-3.4.57-vs2.3.3.9/fs/ioprio.
3793 ret = set_task_ioprio(p, ioprio); 3634 ret = set_task_ioprio(p, ioprio);
3794 if (ret) 3635 if (ret)
3795 break; 3636 break;
3796@@ -193,6 +196,8 @@ SYSCALL_DEFINE2(ioprio_get, int, which, 3637@@ -198,6 +201,8 @@ SYSCALL_DEFINE2(ioprio_get, int, which,
3797 else 3638 else
3798 pgrp = find_vpid(who); 3639 pgrp = find_vpid(who);
3799 do_each_pid_thread(pgrp, PIDTYPE_PGID, p) { 3640 do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -3802,20 +3643,20 @@ diff -NurpP --minimal linux-3.4.57/fs/ioprio.c linux-3.4.57-vs2.3.3.9/fs/ioprio.
3802 tmpio = get_task_ioprio(p); 3643 tmpio = get_task_ioprio(p);
3803 if (tmpio < 0) 3644 if (tmpio < 0)
3804 continue; 3645 continue;
3805diff -NurpP --minimal linux-3.4.57/fs/jfs/file.c linux-3.4.57-vs2.3.3.9/fs/jfs/file.c 3646diff -NurpP --minimal linux-3.10.17/fs/jfs/file.c linux-3.10.17-vs2.3.6.6/fs/jfs/file.c
3806--- linux-3.4.57/fs/jfs/file.c 2011-10-24 16:45:27.000000000 +0000 3647--- linux-3.10.17/fs/jfs/file.c 2013-02-19 13:58:48.000000000 +0000
3807+++ linux-3.4.57-vs2.3.3.9/fs/jfs/file.c 2012-05-21 16:15:05.000000000 +0000 3648+++ linux-3.10.17-vs2.3.6.6/fs/jfs/file.c 2013-08-22 20:29:59.000000000 +0000
3808@@ -109,7 +109,8 @@ int jfs_setattr(struct dentry *dentry, s 3649@@ -109,7 +109,8 @@ int jfs_setattr(struct dentry *dentry, s
3809 if (is_quota_modification(inode, iattr)) 3650 if (is_quota_modification(inode, iattr))
3810 dquot_initialize(inode); 3651 dquot_initialize(inode);
3811 if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) || 3652 if ((iattr->ia_valid & ATTR_UID && !uid_eq(iattr->ia_uid, inode->i_uid)) ||
3812- (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) { 3653- (iattr->ia_valid & ATTR_GID && !gid_eq(iattr->ia_gid, inode->i_gid))) {
3813+ (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid) || 3654+ (iattr->ia_valid & ATTR_GID && !gid_eq(iattr->ia_gid, inode->i_gid)) ||
3814+ (iattr->ia_valid & ATTR_TAG && iattr->ia_tag != inode->i_tag)) { 3655+ (iattr->ia_valid & ATTR_TAG && !tag_eq(iattr->ia_tag, inode->i_tag))) {
3815 rc = dquot_transfer(inode, iattr); 3656 rc = dquot_transfer(inode, iattr);
3816 if (rc) 3657 if (rc)
3817 return rc; 3658 return rc;
3818@@ -142,6 +143,7 @@ const struct inode_operations jfs_file_i 3659@@ -144,6 +145,7 @@ const struct inode_operations jfs_file_i
3819 #ifdef CONFIG_JFS_POSIX_ACL 3660 #ifdef CONFIG_JFS_POSIX_ACL
3820 .get_acl = jfs_get_acl, 3661 .get_acl = jfs_get_acl,
3821 #endif 3662 #endif
@@ -3823,18 +3664,18 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/file.c linux-3.4.57-vs2.3.3.9/fs/jfs/f
3823 }; 3664 };
3824 3665
3825 const struct file_operations jfs_file_operations = { 3666 const struct file_operations jfs_file_operations = {
3826diff -NurpP --minimal linux-3.4.57/fs/jfs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/jfs/ioctl.c 3667diff -NurpP --minimal linux-3.10.17/fs/jfs/ioctl.c linux-3.10.17-vs2.3.6.6/fs/jfs/ioctl.c
3827--- linux-3.4.57/fs/jfs/ioctl.c 2012-03-19 18:47:25.000000000 +0000 3668--- linux-3.10.17/fs/jfs/ioctl.c 2013-05-31 13:45:24.000000000 +0000
3828+++ linux-3.4.57-vs2.3.3.9/fs/jfs/ioctl.c 2012-05-21 16:15:05.000000000 +0000 3669+++ linux-3.10.17-vs2.3.6.6/fs/jfs/ioctl.c 2013-08-22 20:29:59.000000000 +0000
3829@@ -11,6 +11,7 @@ 3670@@ -12,6 +12,7 @@
3830 #include <linux/mount.h>
3831 #include <linux/time.h> 3671 #include <linux/time.h>
3832 #include <linux/sched.h> 3672 #include <linux/sched.h>
3673 #include <linux/blkdev.h>
3833+#include <linux/mount.h> 3674+#include <linux/mount.h>
3834 #include <asm/current.h> 3675 #include <asm/current.h>
3835 #include <asm/uaccess.h> 3676 #include <asm/uaccess.h>
3836 3677
3837@@ -52,6 +53,16 @@ static long jfs_map_ext2(unsigned long f 3678@@ -56,6 +57,16 @@ static long jfs_map_ext2(unsigned long f
3838 } 3679 }
3839 3680
3840 3681
@@ -3850,8 +3691,8 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/jfs/
3850+ 3691+
3851 long jfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) 3692 long jfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
3852 { 3693 {
3853 struct inode *inode = filp->f_dentry->d_inode; 3694 struct inode *inode = file_inode(filp);
3854@@ -85,6 +96,11 @@ long jfs_ioctl(struct file *filp, unsign 3695@@ -89,6 +100,11 @@ long jfs_ioctl(struct file *filp, unsign
3855 if (!S_ISDIR(inode->i_mode)) 3696 if (!S_ISDIR(inode->i_mode))
3856 flags &= ~JFS_DIRSYNC_FL; 3697 flags &= ~JFS_DIRSYNC_FL;
3857 3698
@@ -3863,7 +3704,7 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/jfs/
3863 /* Is it quota file? Do not allow user to mess with it */ 3704 /* Is it quota file? Do not allow user to mess with it */
3864 if (IS_NOQUOTA(inode)) { 3705 if (IS_NOQUOTA(inode)) {
3865 err = -EPERM; 3706 err = -EPERM;
3866@@ -102,8 +118,8 @@ long jfs_ioctl(struct file *filp, unsign 3707@@ -106,8 +122,8 @@ long jfs_ioctl(struct file *filp, unsign
3867 * the relevant capability. 3708 * the relevant capability.
3868 */ 3709 */
3869 if ((oldflags & JFS_IMMUTABLE_FL) || 3710 if ((oldflags & JFS_IMMUTABLE_FL) ||
@@ -3874,7 +3715,7 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/jfs/
3874 if (!capable(CAP_LINUX_IMMUTABLE)) { 3715 if (!capable(CAP_LINUX_IMMUTABLE)) {
3875 mutex_unlock(&inode->i_mutex); 3716 mutex_unlock(&inode->i_mutex);
3876 err = -EPERM; 3717 err = -EPERM;
3877@@ -111,7 +127,7 @@ long jfs_ioctl(struct file *filp, unsign 3718@@ -115,7 +131,7 @@ long jfs_ioctl(struct file *filp, unsign
3878 } 3719 }
3879 } 3720 }
3880 3721
@@ -3883,9 +3724,9 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/jfs/
3883 flags |= oldflags & ~JFS_FL_USER_MODIFIABLE; 3724 flags |= oldflags & ~JFS_FL_USER_MODIFIABLE;
3884 jfs_inode->mode2 = flags; 3725 jfs_inode->mode2 = flags;
3885 3726
3886diff -NurpP --minimal linux-3.4.57/fs/jfs/jfs_dinode.h linux-3.4.57-vs2.3.3.9/fs/jfs/jfs_dinode.h 3727diff -NurpP --minimal linux-3.10.17/fs/jfs/jfs_dinode.h linux-3.10.17-vs2.3.6.6/fs/jfs/jfs_dinode.h
3887--- linux-3.4.57/fs/jfs/jfs_dinode.h 2008-12-24 23:26:37.000000000 +0000 3728--- linux-3.10.17/fs/jfs/jfs_dinode.h 2012-12-11 03:30:57.000000000 +0000
3888+++ linux-3.4.57-vs2.3.3.9/fs/jfs/jfs_dinode.h 2012-05-21 16:15:05.000000000 +0000 3729+++ linux-3.10.17-vs2.3.6.6/fs/jfs/jfs_dinode.h 2013-08-22 20:29:59.000000000 +0000
3889@@ -161,9 +161,13 @@ struct dinode { 3730@@ -161,9 +161,13 @@ struct dinode {
3890 3731
3891 #define JFS_APPEND_FL 0x01000000 /* writes to file may only append */ 3732 #define JFS_APPEND_FL 0x01000000 /* writes to file may only append */
@@ -3902,10 +3743,10 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/jfs_dinode.h linux-3.4.57-vs2.3.3.9/fs
3902 #define JFS_FL_INHERIT 0x03C80000 3743 #define JFS_FL_INHERIT 0x03C80000
3903 3744
3904 /* These are identical to EXT[23]_IOC_GETFLAGS/SETFLAGS */ 3745 /* These are identical to EXT[23]_IOC_GETFLAGS/SETFLAGS */
3905diff -NurpP --minimal linux-3.4.57/fs/jfs/jfs_filsys.h linux-3.4.57-vs2.3.3.9/fs/jfs/jfs_filsys.h 3746diff -NurpP --minimal linux-3.10.17/fs/jfs/jfs_filsys.h linux-3.10.17-vs2.3.6.6/fs/jfs/jfs_filsys.h
3906--- linux-3.4.57/fs/jfs/jfs_filsys.h 2008-12-24 23:26:37.000000000 +0000 3747--- linux-3.10.17/fs/jfs/jfs_filsys.h 2012-12-11 03:30:57.000000000 +0000
3907+++ linux-3.4.57-vs2.3.3.9/fs/jfs/jfs_filsys.h 2012-05-21 16:15:05.000000000 +0000 3748+++ linux-3.10.17-vs2.3.6.6/fs/jfs/jfs_filsys.h 2013-08-22 20:29:59.000000000 +0000
3908@@ -263,6 +263,7 @@ 3749@@ -266,6 +266,7 @@
3909 #define JFS_NAME_MAX 255 3750 #define JFS_NAME_MAX 255
3910 #define JFS_PATH_MAX BPSIZE 3751 #define JFS_PATH_MAX BPSIZE
3911 3752
@@ -3913,9 +3754,9 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/jfs_filsys.h linux-3.4.57-vs2.3.3.9/fs
3913 3754
3914 /* 3755 /*
3915 * file system state (superblock state) 3756 * file system state (superblock state)
3916diff -NurpP --minimal linux-3.4.57/fs/jfs/jfs_imap.c linux-3.4.57-vs2.3.3.9/fs/jfs/jfs_imap.c 3757diff -NurpP --minimal linux-3.10.17/fs/jfs/jfs_imap.c linux-3.10.17-vs2.3.6.6/fs/jfs/jfs_imap.c
3917--- linux-3.4.57/fs/jfs/jfs_imap.c 2012-01-09 15:14:54.000000000 +0000 3758--- linux-3.10.17/fs/jfs/jfs_imap.c 2013-07-14 17:01:28.000000000 +0000
3918+++ linux-3.4.57-vs2.3.3.9/fs/jfs/jfs_imap.c 2012-05-21 16:15:05.000000000 +0000 3759+++ linux-3.10.17-vs2.3.6.6/fs/jfs/jfs_imap.c 2013-08-22 20:29:59.000000000 +0000
3919@@ -46,6 +46,7 @@ 3760@@ -46,6 +46,7 @@
3920 #include <linux/pagemap.h> 3761 #include <linux/pagemap.h>
3921 #include <linux/quotaops.h> 3762 #include <linux/quotaops.h>
@@ -3928,8 +3769,8 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/jfs_imap.c linux-3.4.57-vs2.3.3.9/fs/j
3928 { 3769 {
3929 struct jfs_inode_info *jfs_ip = JFS_IP(ip); 3770 struct jfs_inode_info *jfs_ip = JFS_IP(ip);
3930 struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb); 3771 struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
3931+ uid_t uid; 3772+ kuid_t kuid;
3932+ gid_t gid; 3773+ kgid_t kgid;
3933 3774
3934 jfs_ip->fileset = le32_to_cpu(dip->di_fileset); 3775 jfs_ip->fileset = le32_to_cpu(dip->di_fileset);
3935 jfs_ip->mode2 = le32_to_cpu(dip->di_mode); 3776 jfs_ip->mode2 = le32_to_cpu(dip->di_mode);
@@ -3937,47 +3778,51 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/jfs_imap.c linux-3.4.57-vs2.3.3.9/fs/j
3937 } 3778 }
3938 set_nlink(ip, le32_to_cpu(dip->di_nlink)); 3779 set_nlink(ip, le32_to_cpu(dip->di_nlink));
3939 3780
3940- jfs_ip->saved_uid = le32_to_cpu(dip->di_uid); 3781- jfs_ip->saved_uid = make_kuid(&init_user_ns, le32_to_cpu(dip->di_uid));
3941+ uid = le32_to_cpu(dip->di_uid); 3782+ kuid = make_kuid(&init_user_ns, le32_to_cpu(dip->di_uid));
3942+ gid = le32_to_cpu(dip->di_gid); 3783+ kgid = make_kgid(&init_user_ns, le32_to_cpu(dip->di_gid));
3943+ ip->i_tag = INOTAG_TAG(DX_TAG(ip), uid, gid, 0); 3784+ ip->i_tag = INOTAG_KTAG(DX_TAG(ip), kuid, kgid, GLOBAL_ROOT_TAG);
3944+ 3785+
3945+ jfs_ip->saved_uid = INOTAG_UID(DX_TAG(ip), uid, gid); 3786+ jfs_ip->saved_uid = INOTAG_KUID(DX_TAG(ip), kuid, kgid);
3946 if (sbi->uid == -1) 3787 if (!uid_valid(sbi->uid))
3947 ip->i_uid = jfs_ip->saved_uid; 3788 ip->i_uid = jfs_ip->saved_uid;
3948 else { 3789 else {
3949 ip->i_uid = sbi->uid; 3790 ip->i_uid = sbi->uid;
3950 } 3791 }
3951 3792
3952- jfs_ip->saved_gid = le32_to_cpu(dip->di_gid); 3793- jfs_ip->saved_gid = make_kgid(&init_user_ns, le32_to_cpu(dip->di_gid));
3953+ jfs_ip->saved_gid = INOTAG_GID(DX_TAG(ip), uid, gid); 3794+ jfs_ip->saved_gid = INOTAG_KGID(DX_TAG(ip), kuid, kgid);
3954 if (sbi->gid == -1) 3795 if (!gid_valid(sbi->gid))
3955 ip->i_gid = jfs_ip->saved_gid; 3796 ip->i_gid = jfs_ip->saved_gid;
3956 else { 3797 else {
3957@@ -3150,14 +3157,12 @@ static void copy_to_dinode(struct dinode 3798@@ -3150,16 +3157,14 @@ static void copy_to_dinode(struct dinode
3958 dip->di_size = cpu_to_le64(ip->i_size); 3799 dip->di_size = cpu_to_le64(ip->i_size);
3959 dip->di_nblocks = cpu_to_le64(PBLK2LBLK(ip->i_sb, ip->i_blocks)); 3800 dip->di_nblocks = cpu_to_le64(PBLK2LBLK(ip->i_sb, ip->i_blocks));
3960 dip->di_nlink = cpu_to_le32(ip->i_nlink); 3801 dip->di_nlink = cpu_to_le32(ip->i_nlink);
3961- if (sbi->uid == -1) 3802- if (!uid_valid(sbi->uid))
3962- dip->di_uid = cpu_to_le32(ip->i_uid); 3803- dip->di_uid = cpu_to_le32(i_uid_read(ip));
3963- else 3804- else
3964- dip->di_uid = cpu_to_le32(jfs_ip->saved_uid); 3805- dip->di_uid =cpu_to_le32(from_kuid(&init_user_ns,
3965- if (sbi->gid == -1) 3806- jfs_ip->saved_uid));
3966- dip->di_gid = cpu_to_le32(ip->i_gid); 3807- if (!gid_valid(sbi->gid))
3808- dip->di_gid = cpu_to_le32(i_gid_read(ip));
3967- else 3809- else
3968- dip->di_gid = cpu_to_le32(jfs_ip->saved_gid); 3810- dip->di_gid = cpu_to_le32(from_kgid(&init_user_ns,
3969+ 3811- jfs_ip->saved_gid));
3970+ dip->di_uid = cpu_to_le32(TAGINO_UID(DX_TAG(ip), 3812+ dip->di_uid = cpu_to_le32(from_kuid(&init_user_ns,
3971+ (sbi->uid == -1) ? ip->i_uid : jfs_ip->saved_uid, ip->i_tag)); 3813+ TAGINO_KUID(DX_TAG(ip),
3972+ dip->di_gid = cpu_to_le32(TAGINO_GID(DX_TAG(ip), 3814+ !uid_valid(sbi->uid) ? ip->i_uid : jfs_ip->saved_uid,
3973+ (sbi->gid == -1) ? ip->i_gid : jfs_ip->saved_gid, ip->i_tag)); 3815+ ip->i_tag)));
3974+ 3816+ dip->di_gid = cpu_to_le32(from_kgid(&init_user_ns,
3817+ TAGINO_KGID(DX_TAG(ip),
3818+ !gid_valid(sbi->gid) ? ip->i_gid : jfs_ip->saved_gid,
3819+ ip->i_tag)));
3975 jfs_get_inode_flags(jfs_ip); 3820 jfs_get_inode_flags(jfs_ip);
3976 /* 3821 /*
3977 * mode2 is only needed for storing the higher order bits. 3822 * mode2 is only needed for storing the higher order bits.
3978diff -NurpP --minimal linux-3.4.57/fs/jfs/jfs_inode.c linux-3.4.57-vs2.3.3.9/fs/jfs/jfs_inode.c 3823diff -NurpP --minimal linux-3.10.17/fs/jfs/jfs_inode.c linux-3.10.17-vs2.3.6.6/fs/jfs/jfs_inode.c
3979--- linux-3.4.57/fs/jfs/jfs_inode.c 2012-01-09 15:14:54.000000000 +0000 3824--- linux-3.10.17/fs/jfs/jfs_inode.c 2012-12-11 03:30:57.000000000 +0000
3980+++ linux-3.4.57-vs2.3.3.9/fs/jfs/jfs_inode.c 2012-05-21 16:15:05.000000000 +0000 3825+++ linux-3.10.17-vs2.3.6.6/fs/jfs/jfs_inode.c 2013-08-22 20:29:59.000000000 +0000
3981@@ -18,6 +18,7 @@ 3826@@ -18,6 +18,7 @@
3982 3827
3983 #include <linux/fs.h> 3828 #include <linux/fs.h>
@@ -4051,9 +3896,9 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/jfs_inode.c linux-3.4.57-vs2.3.3.9/fs/
4051 } 3896 }
4052 3897
4053 /* 3898 /*
4054diff -NurpP --minimal linux-3.4.57/fs/jfs/jfs_inode.h linux-3.4.57-vs2.3.3.9/fs/jfs/jfs_inode.h 3899diff -NurpP --minimal linux-3.10.17/fs/jfs/jfs_inode.h linux-3.10.17-vs2.3.6.6/fs/jfs/jfs_inode.h
4055--- linux-3.4.57/fs/jfs/jfs_inode.h 2011-10-24 16:45:27.000000000 +0000 3900--- linux-3.10.17/fs/jfs/jfs_inode.h 2012-12-11 03:30:57.000000000 +0000
4056+++ linux-3.4.57-vs2.3.3.9/fs/jfs/jfs_inode.h 2012-05-21 16:15:05.000000000 +0000 3901+++ linux-3.10.17-vs2.3.6.6/fs/jfs/jfs_inode.h 2013-08-22 20:29:59.000000000 +0000
4057@@ -39,6 +39,7 @@ extern struct dentry *jfs_fh_to_dentry(s 3902@@ -39,6 +39,7 @@ extern struct dentry *jfs_fh_to_dentry(s
4058 extern struct dentry *jfs_fh_to_parent(struct super_block *sb, struct fid *fid, 3903 extern struct dentry *jfs_fh_to_parent(struct super_block *sb, struct fid *fid,
4059 int fh_len, int fh_type); 3904 int fh_len, int fh_type);
@@ -4062,9 +3907,9 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/jfs_inode.h linux-3.4.57-vs2.3.3.9/fs/
4062 extern int jfs_get_block(struct inode *, sector_t, struct buffer_head *, int); 3907 extern int jfs_get_block(struct inode *, sector_t, struct buffer_head *, int);
4063 extern int jfs_setattr(struct dentry *, struct iattr *); 3908 extern int jfs_setattr(struct dentry *, struct iattr *);
4064 3909
4065diff -NurpP --minimal linux-3.4.57/fs/jfs/namei.c linux-3.4.57-vs2.3.3.9/fs/jfs/namei.c 3910diff -NurpP --minimal linux-3.10.17/fs/jfs/namei.c linux-3.10.17-vs2.3.6.6/fs/jfs/namei.c
4066--- linux-3.4.57/fs/jfs/namei.c 2012-05-21 16:07:25.000000000 +0000 3911--- linux-3.10.17/fs/jfs/namei.c 2012-12-11 03:30:57.000000000 +0000
4067+++ linux-3.4.57-vs2.3.3.9/fs/jfs/namei.c 2012-05-21 16:15:05.000000000 +0000 3912+++ linux-3.10.17-vs2.3.6.6/fs/jfs/namei.c 2013-08-22 20:29:59.000000000 +0000
4068@@ -22,6 +22,7 @@ 3913@@ -22,6 +22,7 @@
4069 #include <linux/ctype.h> 3914 #include <linux/ctype.h>
4070 #include <linux/quotaops.h> 3915 #include <linux/quotaops.h>
@@ -4089,20 +3934,20 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/namei.c linux-3.4.57-vs2.3.3.9/fs/jfs/
4089 }; 3934 };
4090 3935
4091 const struct file_operations jfs_dir_operations = { 3936 const struct file_operations jfs_dir_operations = {
4092diff -NurpP --minimal linux-3.4.57/fs/jfs/super.c linux-3.4.57-vs2.3.3.9/fs/jfs/super.c 3937diff -NurpP --minimal linux-3.10.17/fs/jfs/super.c linux-3.10.17-vs2.3.6.6/fs/jfs/super.c
4093--- linux-3.4.57/fs/jfs/super.c 2012-05-21 16:07:25.000000000 +0000 3938--- linux-3.10.17/fs/jfs/super.c 2013-07-14 17:01:28.000000000 +0000
4094+++ linux-3.4.57-vs2.3.3.9/fs/jfs/super.c 2012-05-21 16:15:05.000000000 +0000 3939+++ linux-3.10.17-vs2.3.6.6/fs/jfs/super.c 2013-08-22 20:29:59.000000000 +0000
4095@@ -197,7 +197,8 @@ static void jfs_put_super(struct super_b 3940@@ -199,7 +199,8 @@ enum {
4096 enum {
4097 Opt_integrity, Opt_nointegrity, Opt_iocharset, Opt_resize, 3941 Opt_integrity, Opt_nointegrity, Opt_iocharset, Opt_resize,
4098 Opt_resize_nosize, Opt_errors, Opt_ignore, Opt_err, Opt_quota, 3942 Opt_resize_nosize, Opt_errors, Opt_ignore, Opt_err, Opt_quota,
4099- Opt_usrquota, Opt_grpquota, Opt_uid, Opt_gid, Opt_umask 3943 Opt_usrquota, Opt_grpquota, Opt_uid, Opt_gid, Opt_umask,
4100+ Opt_usrquota, Opt_grpquota, Opt_uid, Opt_gid, Opt_umask, 3944- Opt_discard, Opt_nodiscard, Opt_discard_minblk
3945+ Opt_discard, Opt_nodiscard, Opt_discard_minblk,
4101+ Opt_tag, Opt_notag, Opt_tagid 3946+ Opt_tag, Opt_notag, Opt_tagid
4102 }; 3947 };
4103 3948
4104 static const match_table_t tokens = { 3949 static const match_table_t tokens = {
4105@@ -207,6 +208,10 @@ static const match_table_t tokens = { 3950@@ -209,6 +210,10 @@ static const match_table_t tokens = {
4106 {Opt_resize, "resize=%u"}, 3951 {Opt_resize, "resize=%u"},
4107 {Opt_resize_nosize, "resize"}, 3952 {Opt_resize_nosize, "resize"},
4108 {Opt_errors, "errors=%s"}, 3953 {Opt_errors, "errors=%s"},
@@ -4113,10 +3958,11 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/super.c linux-3.4.57-vs2.3.3.9/fs/jfs/
4113 {Opt_ignore, "noquota"}, 3958 {Opt_ignore, "noquota"},
4114 {Opt_ignore, "quota"}, 3959 {Opt_ignore, "quota"},
4115 {Opt_usrquota, "usrquota"}, 3960 {Opt_usrquota, "usrquota"},
4116@@ -341,6 +346,20 @@ static int parse_options(char *options, 3961@@ -385,7 +390,20 @@ static int parse_options(char *options,
4117 } 3962 }
4118 break; 3963 break;
4119 } 3964 }
3965-
4120+#ifndef CONFIG_TAGGING_NONE 3966+#ifndef CONFIG_TAGGING_NONE
4121+ case Opt_tag: 3967+ case Opt_tag:
4122+ *flag |= JFS_TAGGED; 3968+ *flag |= JFS_TAGGED;
@@ -4134,7 +3980,7 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/super.c linux-3.4.57-vs2.3.3.9/fs/jfs/
4134 default: 3980 default:
4135 printk("jfs: Unrecognized mount option \"%s\" " 3981 printk("jfs: Unrecognized mount option \"%s\" "
4136 " or missing value\n", p); 3982 " or missing value\n", p);
4137@@ -372,6 +391,12 @@ static int jfs_remount(struct super_bloc 3983@@ -417,6 +435,12 @@ static int jfs_remount(struct super_bloc
4138 return -EINVAL; 3984 return -EINVAL;
4139 } 3985 }
4140 3986
@@ -4146,8 +3992,8 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/super.c linux-3.4.57-vs2.3.3.9/fs/jfs/
4146+ 3992+
4147 if (newLVSize) { 3993 if (newLVSize) {
4148 if (sb->s_flags & MS_RDONLY) { 3994 if (sb->s_flags & MS_RDONLY) {
4149 printk(KERN_ERR 3995 pr_err("JFS: resize requires volume" \
4150@@ -455,6 +480,9 @@ static int jfs_fill_super(struct super_b 3996@@ -502,6 +526,9 @@ static int jfs_fill_super(struct super_b
4151 #ifdef CONFIG_JFS_POSIX_ACL 3997 #ifdef CONFIG_JFS_POSIX_ACL
4152 sb->s_flags |= MS_POSIXACL; 3998 sb->s_flags |= MS_POSIXACL;
4153 #endif 3999 #endif
@@ -4156,10 +4002,10 @@ diff -NurpP --minimal linux-3.4.57/fs/jfs/super.c linux-3.4.57-vs2.3.3.9/fs/jfs/
4156+ sb->s_flags |= MS_TAGGED; 4002+ sb->s_flags |= MS_TAGGED;
4157 4003
4158 if (newLVSize) { 4004 if (newLVSize) {
4159 printk(KERN_ERR "resize option for remount only\n"); 4005 pr_err("resize option for remount only\n");
4160diff -NurpP --minimal linux-3.4.57/fs/libfs.c linux-3.4.57-vs2.3.3.9/fs/libfs.c 4006diff -NurpP --minimal linux-3.10.17/fs/libfs.c linux-3.10.17-vs2.3.6.6/fs/libfs.c
4161--- linux-3.4.57/fs/libfs.c 2012-05-21 16:07:25.000000000 +0000 4007--- linux-3.10.17/fs/libfs.c 2013-02-19 13:58:48.000000000 +0000
4162+++ linux-3.4.57-vs2.3.3.9/fs/libfs.c 2012-05-21 16:15:05.000000000 +0000 4008+++ linux-3.10.17-vs2.3.6.6/fs/libfs.c 2013-08-22 20:29:59.000000000 +0000
4163@@ -135,7 +135,8 @@ static inline unsigned char dt_type(stru 4009@@ -135,7 +135,8 @@ static inline unsigned char dt_type(stru
4164 * both impossible due to the lock on directory. 4010 * both impossible due to the lock on directory.
4165 */ 4011 */
@@ -4197,7 +4043,7 @@ diff -NurpP --minimal linux-3.4.57/fs/libfs.c linux-3.4.57-vs2.3.3.9/fs/libfs.c
4197 ssize_t generic_read_dir(struct file *filp, char __user *buf, size_t siz, loff_t *ppos) 4043 ssize_t generic_read_dir(struct file *filp, char __user *buf, size_t siz, loff_t *ppos)
4198 { 4044 {
4199 return -EISDIR; 4045 return -EISDIR;
4200@@ -983,6 +997,7 @@ EXPORT_SYMBOL(dcache_dir_close); 4046@@ -981,6 +995,7 @@ EXPORT_SYMBOL(dcache_dir_close);
4201 EXPORT_SYMBOL(dcache_dir_lseek); 4047 EXPORT_SYMBOL(dcache_dir_lseek);
4202 EXPORT_SYMBOL(dcache_dir_open); 4048 EXPORT_SYMBOL(dcache_dir_open);
4203 EXPORT_SYMBOL(dcache_readdir); 4049 EXPORT_SYMBOL(dcache_readdir);
@@ -4205,9 +4051,9 @@ diff -NurpP --minimal linux-3.4.57/fs/libfs.c linux-3.4.57-vs2.3.3.9/fs/libfs.c
4205 EXPORT_SYMBOL(generic_read_dir); 4051 EXPORT_SYMBOL(generic_read_dir);
4206 EXPORT_SYMBOL(mount_pseudo); 4052 EXPORT_SYMBOL(mount_pseudo);
4207 EXPORT_SYMBOL(simple_write_begin); 4053 EXPORT_SYMBOL(simple_write_begin);
4208diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c 4054diff -NurpP --minimal linux-3.10.17/fs/locks.c linux-3.10.17-vs2.3.6.6/fs/locks.c
4209--- linux-3.4.57/fs/locks.c 2013-08-13 14:13:33.000000000 +0000 4055--- linux-3.10.17/fs/locks.c 2013-05-31 13:45:24.000000000 +0000
4210+++ linux-3.4.57-vs2.3.3.9/fs/locks.c 2012-09-01 08:50:49.000000000 +0000 4056+++ linux-3.10.17-vs2.3.6.6/fs/locks.c 2013-08-22 20:29:59.000000000 +0000
4211@@ -126,6 +126,8 @@ 4057@@ -126,6 +126,8 @@
4212 #include <linux/time.h> 4058 #include <linux/time.h>
4213 #include <linux/rcupdate.h> 4059 #include <linux/rcupdate.h>
@@ -4238,7 +4084,7 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4238 return fl; 4084 return fl;
4239 } 4085 }
4240 EXPORT_SYMBOL_GPL(locks_alloc_lock); 4086 EXPORT_SYMBOL_GPL(locks_alloc_lock);
4241@@ -216,6 +224,7 @@ void locks_free_lock(struct file_lock *f 4087@@ -212,6 +220,7 @@ void locks_free_lock(struct file_lock *f
4242 BUG_ON(!list_empty(&fl->fl_block)); 4088 BUG_ON(!list_empty(&fl->fl_block));
4243 BUG_ON(!list_empty(&fl->fl_link)); 4089 BUG_ON(!list_empty(&fl->fl_link));
4244 4090
@@ -4246,7 +4092,7 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4246 locks_release_private(fl); 4092 locks_release_private(fl);
4247 kmem_cache_free(filelock_cache, fl); 4093 kmem_cache_free(filelock_cache, fl);
4248 } 4094 }
4249@@ -225,6 +234,7 @@ void locks_init_lock(struct file_lock *f 4095@@ -221,6 +230,7 @@ void locks_init_lock(struct file_lock *f
4250 { 4096 {
4251 memset(fl, 0, sizeof(struct file_lock)); 4097 memset(fl, 0, sizeof(struct file_lock));
4252 locks_init_lock_heads(fl); 4098 locks_init_lock_heads(fl);
@@ -4254,7 +4100,7 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4254 } 4100 }
4255 4101
4256 EXPORT_SYMBOL(locks_init_lock); 4102 EXPORT_SYMBOL(locks_init_lock);
4257@@ -265,6 +275,7 @@ void locks_copy_lock(struct file_lock *n 4103@@ -261,6 +271,7 @@ void locks_copy_lock(struct file_lock *n
4258 new->fl_file = fl->fl_file; 4104 new->fl_file = fl->fl_file;
4259 new->fl_ops = fl->fl_ops; 4105 new->fl_ops = fl->fl_ops;
4260 new->fl_lmops = fl->fl_lmops; 4106 new->fl_lmops = fl->fl_lmops;
@@ -4262,7 +4108,7 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4262 4108
4263 locks_copy_private(new, fl); 4109 locks_copy_private(new, fl);
4264 } 4110 }
4265@@ -303,6 +314,11 @@ static int flock_make_lock(struct file * 4111@@ -299,6 +310,11 @@ static int flock_make_lock(struct file *
4266 fl->fl_flags = FL_FLOCK; 4112 fl->fl_flags = FL_FLOCK;
4267 fl->fl_type = type; 4113 fl->fl_type = type;
4268 fl->fl_end = OFFSET_MAX; 4114 fl->fl_end = OFFSET_MAX;
@@ -4274,7 +4120,7 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4274 4120
4275 *lock = fl; 4121 *lock = fl;
4276 return 0; 4122 return 0;
4277@@ -452,6 +468,7 @@ static int lease_init(struct file *filp, 4123@@ -438,6 +454,7 @@ static int lease_init(struct file *filp,
4278 4124
4279 fl->fl_owner = current->files; 4125 fl->fl_owner = current->files;
4280 fl->fl_pid = current->tgid; 4126 fl->fl_pid = current->tgid;
@@ -4282,7 +4128,7 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4282 4128
4283 fl->fl_file = filp; 4129 fl->fl_file = filp;
4284 fl->fl_flags = FL_LEASE; 4130 fl->fl_flags = FL_LEASE;
4285@@ -471,6 +488,11 @@ static struct file_lock *lease_alloc(str 4131@@ -457,6 +474,11 @@ static struct file_lock *lease_alloc(str
4286 if (fl == NULL) 4132 if (fl == NULL)
4287 return ERR_PTR(error); 4133 return ERR_PTR(error);
4288 4134
@@ -4294,7 +4140,7 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4294 error = lease_init(filp, type, fl); 4140 error = lease_init(filp, type, fl);
4295 if (error) { 4141 if (error) {
4296 locks_free_lock(fl); 4142 locks_free_lock(fl);
4297@@ -773,6 +795,7 @@ static int flock_lock_file(struct file * 4143@@ -753,6 +775,7 @@ static int flock_lock_file(struct file *
4298 lock_flocks(); 4144 lock_flocks();
4299 } 4145 }
4300 4146
@@ -4302,7 +4148,7 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4302 find_conflict: 4148 find_conflict:
4303 for_each_lock(inode, before) { 4149 for_each_lock(inode, before) {
4304 struct file_lock *fl = *before; 4150 struct file_lock *fl = *before;
4305@@ -793,6 +816,7 @@ find_conflict: 4151@@ -773,6 +796,7 @@ find_conflict:
4306 goto out; 4152 goto out;
4307 locks_copy_lock(new_fl, request); 4153 locks_copy_lock(new_fl, request);
4308 locks_insert_lock(before, new_fl); 4154 locks_insert_lock(before, new_fl);
@@ -4310,17 +4156,17 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4310 new_fl = NULL; 4156 new_fl = NULL;
4311 error = 0; 4157 error = 0;
4312 4158
4313@@ -803,7 +827,8 @@ out: 4159@@ -783,7 +807,8 @@ out:
4314 return error; 4160 return error;
4315 } 4161 }
4316 4162
4317-static int __posix_lock_file(struct inode *inode, struct file_lock *request, struct file_lock *conflock) 4163-static int __posix_lock_file(struct inode *inode, struct file_lock *request, struct file_lock *conflock)
4318+static int __posix_lock_file(struct inode *inode, struct file_lock *request, 4164+static int __posix_lock_file(struct inode *inode, struct file_lock *request,
4319+ struct file_lock *conflock, xid_t xid) 4165+ struct file_lock *conflock, vxid_t xid)
4320 { 4166 {
4321 struct file_lock *fl; 4167 struct file_lock *fl;
4322 struct file_lock *new_fl = NULL; 4168 struct file_lock *new_fl = NULL;
4323@@ -813,6 +838,8 @@ static int __posix_lock_file(struct inod 4169@@ -793,6 +818,8 @@ static int __posix_lock_file(struct inod
4324 struct file_lock **before; 4170 struct file_lock **before;
4325 int error, added = 0; 4171 int error, added = 0;
4326 4172
@@ -4329,7 +4175,7 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4329 /* 4175 /*
4330 * We may need two file_lock structures for this operation, 4176 * We may need two file_lock structures for this operation,
4331 * so we get them in advance to avoid races. 4177 * so we get them in advance to avoid races.
4332@@ -823,7 +850,11 @@ static int __posix_lock_file(struct inod 4178@@ -803,7 +830,11 @@ static int __posix_lock_file(struct inod
4333 (request->fl_type != F_UNLCK || 4179 (request->fl_type != F_UNLCK ||
4334 request->fl_start != 0 || request->fl_end != OFFSET_MAX)) { 4180 request->fl_start != 0 || request->fl_end != OFFSET_MAX)) {
4335 new_fl = locks_alloc_lock(); 4181 new_fl = locks_alloc_lock();
@@ -4341,17 +4187,17 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4341 } 4187 }
4342 4188
4343 lock_flocks(); 4189 lock_flocks();
4344@@ -1022,7 +1053,8 @@ static int __posix_lock_file(struct inod 4190@@ -1002,7 +1033,8 @@ static int __posix_lock_file(struct inod
4345 int posix_lock_file(struct file *filp, struct file_lock *fl, 4191 int posix_lock_file(struct file *filp, struct file_lock *fl,
4346 struct file_lock *conflock) 4192 struct file_lock *conflock)
4347 { 4193 {
4348- return __posix_lock_file(filp->f_path.dentry->d_inode, fl, conflock); 4194- return __posix_lock_file(file_inode(filp), fl, conflock);
4349+ return __posix_lock_file(filp->f_path.dentry->d_inode, 4195+ return __posix_lock_file(file_inode(filp),
4350+ fl, conflock, filp->f_xid); 4196+ fl, conflock, filp->f_xid);
4351 } 4197 }
4352 EXPORT_SYMBOL(posix_lock_file); 4198 EXPORT_SYMBOL(posix_lock_file);
4353 4199
4354@@ -1112,7 +1144,7 @@ int locks_mandatory_area(int read_write, 4200@@ -1092,7 +1124,7 @@ int locks_mandatory_area(int read_write,
4355 fl.fl_end = offset + count - 1; 4201 fl.fl_end = offset + count - 1;
4356 4202
4357 for (;;) { 4203 for (;;) {
@@ -4360,7 +4206,7 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4360 if (error != FILE_LOCK_DEFERRED) 4206 if (error != FILE_LOCK_DEFERRED)
4361 break; 4207 break;
4362 error = wait_event_interruptible(fl.fl_wait, !fl.fl_next); 4208 error = wait_event_interruptible(fl.fl_wait, !fl.fl_next);
4363@@ -1407,6 +1439,7 @@ int generic_add_lease(struct file *filp, 4209@@ -1397,6 +1429,7 @@ int generic_add_lease(struct file *filp,
4364 goto out; 4210 goto out;
4365 4211
4366 locks_insert_lock(before, lease); 4212 locks_insert_lock(before, lease);
@@ -4368,7 +4214,7 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4368 return 0; 4214 return 0;
4369 4215
4370 out: 4216 out:
4371@@ -1847,6 +1880,11 @@ int fcntl_setlk(unsigned int fd, struct 4217@@ -1836,6 +1869,11 @@ int fcntl_setlk(unsigned int fd, struct
4372 if (file_lock == NULL) 4218 if (file_lock == NULL)
4373 return -ENOLCK; 4219 return -ENOLCK;
4374 4220
@@ -4380,7 +4226,7 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4380 /* 4226 /*
4381 * This might block, so we do it before checking the inode. 4227 * This might block, so we do it before checking the inode.
4382 */ 4228 */
4383@@ -1965,6 +2003,11 @@ int fcntl_setlk64(unsigned int fd, struc 4229@@ -1954,6 +1992,11 @@ int fcntl_setlk64(unsigned int fd, struc
4384 if (file_lock == NULL) 4230 if (file_lock == NULL)
4385 return -ENOLCK; 4231 return -ENOLCK;
4386 4232
@@ -4392,7 +4238,7 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4392 /* 4238 /*
4393 * This might block, so we do it before checking the inode. 4239 * This might block, so we do it before checking the inode.
4394 */ 4240 */
4395@@ -2230,8 +2273,11 @@ static int locks_show(struct seq_file *f 4241@@ -2219,8 +2262,11 @@ static int locks_show(struct seq_file *f
4396 4242
4397 lock_get_status(f, fl, *((loff_t *)f->private), ""); 4243 lock_get_status(f, fl, *((loff_t *)f->private), "");
4398 4244
@@ -4405,25 +4251,26 @@ diff -NurpP --minimal linux-3.4.57/fs/locks.c linux-3.4.57-vs2.3.3.9/fs/locks.c
4405 4251
4406 return 0; 4252 return 0;
4407 } 4253 }
4408diff -NurpP --minimal linux-3.4.57/fs/mount.h linux-3.4.57-vs2.3.3.9/fs/mount.h 4254diff -NurpP --minimal linux-3.10.17/fs/mount.h linux-3.10.17-vs2.3.6.6/fs/mount.h
4409--- linux-3.4.57/fs/mount.h 2012-03-19 18:47:26.000000000 +0000 4255--- linux-3.10.17/fs/mount.h 2013-07-14 17:01:28.000000000 +0000
4410+++ linux-3.4.57-vs2.3.3.9/fs/mount.h 2012-05-21 16:15:05.000000000 +0000 4256+++ linux-3.10.17-vs2.3.6.6/fs/mount.h 2013-08-22 20:29:59.000000000 +0000
4411@@ -47,6 +47,7 @@ struct mount { 4257@@ -56,6 +56,7 @@ struct mount {
4412 int mnt_expiry_mark; /* true if marked for expiry */ 4258 int mnt_expiry_mark; /* true if marked for expiry */
4413 int mnt_pinned; 4259 int mnt_pinned;
4414 int mnt_ghosts; 4260 int mnt_ghosts;
4415+ tag_t mnt_tag; /* tagging used for vfsmount */ 4261+ vtag_t mnt_tag; /* tagging used for vfsmount */
4416 }; 4262 };
4417 4263
4418 static inline struct mount *real_mount(struct vfsmount *mnt) 4264 #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */
4419diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c 4265diff -NurpP --minimal linux-3.10.17/fs/namei.c linux-3.10.17-vs2.3.6.6/fs/namei.c
4420--- linux-3.4.57/fs/namei.c 2012-05-21 16:07:25.000000000 +0000 4266--- linux-3.10.17/fs/namei.c 2013-07-14 17:01:28.000000000 +0000
4421+++ linux-3.4.57-vs2.3.3.9/fs/namei.c 2012-05-21 16:15:05.000000000 +0000 4267+++ linux-3.10.17-vs2.3.6.6/fs/namei.c 2013-08-22 23:36:09.000000000 +0000
4422@@ -33,6 +33,14 @@ 4268@@ -34,9 +34,19 @@
4423 #include <linux/device_cgroup.h> 4269 #include <linux/device_cgroup.h>
4424 #include <linux/fs_struct.h> 4270 #include <linux/fs_struct.h>
4425 #include <linux/posix_acl.h> 4271 #include <linux/posix_acl.h>
4426+#include <linux/proc_fs.h> 4272+#include <linux/proc_fs.h>
4273+#include <linux/magic.h>
4427+#include <linux/vserver/inode.h> 4274+#include <linux/vserver/inode.h>
4428+#include <linux/vs_base.h> 4275+#include <linux/vs_base.h>
4429+#include <linux/vs_tag.h> 4276+#include <linux/vs_tag.h>
@@ -4434,7 +4281,11 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4434 #include <asm/uaccess.h> 4281 #include <asm/uaccess.h>
4435 4282
4436 #include "internal.h" 4283 #include "internal.h"
4437@@ -221,6 +229,89 @@ static int check_acl(struct inode *inode 4284+#include "proc/internal.h"
4285 #include "mount.h"
4286
4287 /* [Feb-1997 T. Schoebel-Theuer]
4288@@ -266,6 +276,89 @@ static int check_acl(struct inode *inode
4438 return -EAGAIN; 4289 return -EAGAIN;
4439 } 4290 }
4440 4291
@@ -4455,7 +4306,7 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4455+ if (inode->i_sb->s_magic == DEVPTS_SUPER_MAGIC) { 4306+ if (inode->i_sb->s_magic == DEVPTS_SUPER_MAGIC) {
4456+ /* devpts is xid tagged */ 4307+ /* devpts is xid tagged */
4457+ if (S_ISDIR(inode->i_mode) || 4308+ if (S_ISDIR(inode->i_mode) ||
4458+ vx_check((xid_t)inode->i_tag, VS_IDENT | VS_WATCH_P)) 4309+ vx_check((vxid_t)i_tag_read(inode), VS_IDENT | VS_WATCH_P))
4459+ return 0; 4310+ return 0;
4460+ 4311+
4461+ /* just pretend we didn't find anything */ 4312+ /* just pretend we didn't find anything */
@@ -4497,8 +4348,8 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4497+ } 4348+ }
4498+ else { 4349+ else {
4499+ if (dx_notagcheck(inode->i_sb) || 4350+ if (dx_notagcheck(inode->i_sb) ||
4500+ dx_check(inode->i_tag, DX_HOSTID | DX_ADMIN | DX_WATCH | 4351+ dx_check((vxid_t)i_tag_read(inode),
4501+ DX_IDENT)) 4352+ DX_HOSTID | DX_ADMIN | DX_WATCH | DX_IDENT))
4502+ return 0; 4353+ return 0;
4503+ } 4354+ }
4504+ 4355+
@@ -4515,8 +4366,8 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4515+#endif 4366+#endif
4516+ vxwprintk_task(1, 4367+ vxwprintk_task(1,
4517+ "denied [0x%x] access to inode %s:%p[#%d,%lu]", 4368+ "denied [0x%x] access to inode %s:%p[#%d,%lu]",
4518+ mask, inode->i_sb->s_id, inode, inode->i_tag, 4369+ mask, inode->i_sb->s_id, inode,
4519+ inode->i_ino); 4370+ i_tag_read(inode), inode->i_ino);
4520+ } 4371+ }
4521+ return ret; 4372+ return ret;
4522+} 4373+}
@@ -4524,7 +4375,7 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4524 /* 4375 /*
4525 * This does the basic permission checking 4376 * This does the basic permission checking
4526 */ 4377 */
4527@@ -356,10 +447,14 @@ int inode_permission(struct inode *inode 4378@@ -388,10 +481,14 @@ int __inode_permission(struct inode *ino
4528 /* 4379 /*
4529 * Nobody gets write access to an immutable file. 4380 * Nobody gets write access to an immutable file.
4530 */ 4381 */
@@ -4540,7 +4391,7 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4540 retval = do_inode_permission(inode, mask); 4391 retval = do_inode_permission(inode, mask);
4541 if (retval) 4392 if (retval)
4542 return retval; 4393 return retval;
4543@@ -1038,7 +1133,8 @@ static void follow_dotdot(struct nameida 4394@@ -1238,7 +1335,8 @@ static void follow_dotdot(struct nameida
4544 4395
4545 if (nd->path.dentry == nd->root.dentry && 4396 if (nd->path.dentry == nd->root.dentry &&
4546 nd->path.mnt == nd->root.mnt) { 4397 nd->path.mnt == nd->root.mnt) {
@@ -4550,7 +4401,7 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4550 } 4401 }
4551 if (nd->path.dentry != nd->path.mnt->mnt_root) { 4402 if (nd->path.dentry != nd->path.mnt->mnt_root) {
4552 /* rare case of legitimate dget_parent()... */ 4403 /* rare case of legitimate dget_parent()... */
4553@@ -1174,6 +1270,9 @@ static int do_lookup(struct nameidata *n 4404@@ -1383,6 +1481,9 @@ static int lookup_fast(struct nameidata
4554 goto unlazy; 4405 goto unlazy;
4555 } 4406 }
4556 } 4407 }
@@ -4560,17 +4411,16 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4560 path->mnt = mnt; 4411 path->mnt = mnt;
4561 path->dentry = dentry; 4412 path->dentry = dentry;
4562 if (unlikely(!__follow_mount_rcu(nd, path, inode))) 4413 if (unlikely(!__follow_mount_rcu(nd, path, inode)))
4563@@ -1208,6 +1307,9 @@ unlazy: 4414@@ -1413,6 +1514,8 @@ unlazy:
4564 goto need_lookup;
4565 } 4415 }
4566 } 4416 }
4567+ 4417
4568+ /* FIXME: check dx permission */ 4418+ /* FIXME: check dx permission */
4569+ 4419+
4570 done:
4571 path->mnt = mnt; 4420 path->mnt = mnt;
4572 path->dentry = dentry; 4421 path->dentry = dentry;
4573@@ -1981,7 +2083,7 @@ static int may_delete(struct inode *dir, 4422 err = follow_managed(path, nd->flags);
4423@@ -2237,7 +2340,7 @@ static int may_delete(struct inode *dir,
4574 if (IS_APPEND(dir)) 4424 if (IS_APPEND(dir))
4575 return -EPERM; 4425 return -EPERM;
4576 if (check_sticky(dir, victim->d_inode)||IS_APPEND(victim->d_inode)|| 4426 if (check_sticky(dir, victim->d_inode)||IS_APPEND(victim->d_inode)||
@@ -4579,10 +4429,10 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4579 return -EPERM; 4429 return -EPERM;
4580 if (isdir) { 4430 if (isdir) {
4581 if (!S_ISDIR(victim->d_inode->i_mode)) 4431 if (!S_ISDIR(victim->d_inode->i_mode))
4582@@ -2061,19 +2163,25 @@ int vfs_create(struct inode *dir, struct 4432@@ -2316,19 +2419,25 @@ int vfs_create(struct inode *dir, struct
4433 bool want_excl)
4583 { 4434 {
4584 int error = may_create(dir, dentry); 4435 int error = may_create(dir, dentry);
4585
4586- if (error) 4436- if (error)
4587+ if (error) { 4437+ if (error) {
4588+ vxdprintk(VXD_CBIT(misc, 3), "may_create failed with %d", error); 4438+ vxdprintk(VXD_CBIT(misc, 3), "may_create failed with %d", error);
@@ -4599,7 +4449,7 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4599+ vxdprintk(VXD_CBIT(misc, 3), "security_inode_create failed with %d", error); 4449+ vxdprintk(VXD_CBIT(misc, 3), "security_inode_create failed with %d", error);
4600 return error; 4450 return error;
4601+ } 4451+ }
4602 error = dir->i_op->create(dir, dentry, mode, nd); 4452 error = dir->i_op->create(dir, dentry, mode, want_excl);
4603 if (!error) 4453 if (!error)
4604 fsnotify_create(dir, dentry); 4454 fsnotify_create(dir, dentry);
4605+ else 4455+ else
@@ -4607,7 +4457,7 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4607 return error; 4457 return error;
4608 } 4458 }
4609 4459
4610@@ -2108,6 +2216,15 @@ static int may_open(struct path *path, i 4460@@ -2363,6 +2472,15 @@ static int may_open(struct path *path, i
4611 break; 4461 break;
4612 } 4462 }
4613 4463
@@ -4623,14 +4473,14 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4623 error = inode_permission(inode, acc_mode); 4473 error = inode_permission(inode, acc_mode);
4624 if (error) 4474 if (error)
4625 return error; 4475 return error;
4626@@ -2332,6 +2449,16 @@ ok: 4476@@ -2865,6 +2983,16 @@ finish_open:
4627 } 4477 }
4628 common: 4478 finish_open_created:
4629 error = may_open(&nd->path, acc_mode, open_flag); 4479 error = may_open(&nd->path, acc_mode, open_flag);
4630+#ifdef CONFIG_VSERVER_COWBL 4480+#ifdef CONFIG_VSERVER_COWBL
4631+ if (error == -EMLINK) { 4481+ if (error == -EMLINK) {
4632+ struct dentry *dentry; 4482+ struct dentry *dentry;
4633+ dentry = cow_break_link(pathname); 4483+ dentry = cow_break_link(name->name);
4634+ if (IS_ERR(dentry)) 4484+ if (IS_ERR(dentry))
4635+ error = PTR_ERR(dentry); 4485+ error = PTR_ERR(dentry);
4636+ else 4486+ else
@@ -4638,35 +4488,34 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4638+ } 4488+ }
4639+#endif 4489+#endif
4640 if (error) 4490 if (error)
4641 goto exit; 4491 goto out;
4642 filp = nameidata_to_filp(nd); 4492 file->f_path.mnt = nd->path.mnt;
4643@@ -2374,6 +2501,7 @@ static struct file *path_openat(int dfd, 4493@@ -2929,6 +3057,7 @@ static struct file *path_openat(int dfd,
4644 struct path path; 4494 int opened = 0;
4645 int error; 4495 int error;
4646 4496
4647+restart: 4497+restart:
4648 filp = get_empty_filp(); 4498 file = get_empty_filp();
4649 if (!filp) 4499 if (IS_ERR(file))
4650 return ERR_PTR(-ENFILE); 4500 return file;
4651@@ -2411,6 +2539,17 @@ static struct file *path_openat(int dfd, 4501@@ -2965,6 +3094,16 @@ static struct file *path_openat(int dfd,
4652 filp = do_last(nd, &path, op, pathname); 4502 error = do_last(nd, &path, file, op, &opened, pathname);
4653 put_link(nd, &link, cookie); 4503 put_link(nd, &link, cookie);
4654 } 4504 }
4655+ 4505+
4656+#ifdef CONFIG_VSERVER_COWBL 4506+#ifdef CONFIG_VSERVER_COWBL
4657+ if (filp == ERR_PTR(-EMLINK)) { 4507+ if (error == -EMLINK) {
4658+ if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT)) 4508+ if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT))
4659+ path_put(&nd->root); 4509+ path_put(&nd->root);
4660+ if (base) 4510+ if (base)
4661+ fput(base); 4511+ fput(base);
4662+ release_open_intent(nd);
4663+ goto restart; 4512+ goto restart;
4664+ } 4513+ }
4665+#endif 4514+#endif
4666 out: 4515 out:
4667 if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT)) 4516 if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT))
4668 path_put(&nd->root); 4517 path_put(&nd->root);
4669@@ -2500,6 +2639,11 @@ struct dentry *kern_path_create(int dfd, 4518@@ -3079,6 +3218,11 @@ struct dentry *kern_path_create(int dfd,
4670 goto fail; 4519 goto fail;
4671 } 4520 }
4672 *path = nd.path; 4521 *path = nd.path;
@@ -4676,9 +4525,9 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4676+ dentry->d_name.len, dentry->d_name.name, 4525+ dentry->d_name.len, dentry->d_name.name,
4677+ path->dentry->d_inode); 4526+ path->dentry->d_inode);
4678 return dentry; 4527 return dentry;
4679 eexist: 4528 fail:
4680 dput(dentry); 4529 dput(dentry);
4681@@ -2986,7 +3130,7 @@ int vfs_link(struct dentry *old_dentry, 4530@@ -3573,7 +3717,7 @@ int vfs_link(struct dentry *old_dentry,
4682 /* 4531 /*
4683 * A link to an append-only or immutable file cannot be created. 4532 * A link to an append-only or immutable file cannot be created.
4684 */ 4533 */
@@ -4687,7 +4536,7 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4687 return -EPERM; 4536 return -EPERM;
4688 if (!dir->i_op->link) 4537 if (!dir->i_op->link)
4689 return -EPERM; 4538 return -EPERM;
4690@@ -3375,6 +3519,253 @@ int vfs_follow_link(struct nameidata *nd 4539@@ -3976,6 +4120,287 @@ int vfs_follow_link(struct nameidata *nd
4691 return __vfs_follow_link(nd, link); 4540 return __vfs_follow_link(nd, link);
4692 } 4541 }
4693 4542
@@ -4698,17 +4547,16 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4698+long do_cow_splice(struct file *in, struct file *out, size_t len) 4547+long do_cow_splice(struct file *in, struct file *out, size_t len)
4699+{ 4548+{
4700+ loff_t ppos = 0; 4549+ loff_t ppos = 0;
4550+ loff_t opos = 0;
4701+ 4551+
4702+ return do_splice_direct(in, &ppos, out, len, 0); 4552+ return do_splice_direct(in, &ppos, out, &opos, len, 0);
4703+} 4553+}
4704+ 4554+
4705+extern unsigned int mnt_get_count(struct mount *mnt);
4706+
4707+struct dentry *cow_break_link(const char *pathname) 4555+struct dentry *cow_break_link(const char *pathname)
4708+{ 4556+{
4709+ int ret, mode, pathlen, redo = 0; 4557+ int ret, mode, pathlen, redo = 0, drop = 1;
4710+ struct nameidata old_nd, dir_nd; 4558+ struct nameidata old_nd, dir_nd;
4711+ struct path old_path, dir_path; 4559+ struct path dir_path, *old_path, *new_path;
4712+ struct dentry *dir, *old_dentry, *new_dentry = NULL; 4560+ struct dentry *dir, *old_dentry, *new_dentry = NULL;
4713+ struct file *old_file; 4561+ struct file *old_file;
4714+ struct file *new_file; 4562+ struct file *new_file;
@@ -4717,24 +4565,26 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4717+ 4565+
4718+ vxdprintk(VXD_CBIT(misc, 1), 4566+ vxdprintk(VXD_CBIT(misc, 1),
4719+ "cow_break_link(" VS_Q("%s") ")", pathname); 4567+ "cow_break_link(" VS_Q("%s") ")", pathname);
4568+
4720+ path = kmalloc(PATH_MAX, GFP_KERNEL); 4569+ path = kmalloc(PATH_MAX, GFP_KERNEL);
4721+ ret = -ENOMEM; 4570+ ret = -ENOMEM;
4722+ if (!path) 4571+ if (!path)
4723+ goto out; 4572+ goto out;
4724+ 4573+
4725+ /* old_nd will have refs to dentry and mnt */ 4574+ /* old_nd.path will have refs to dentry and mnt */
4726+ ret = do_path_lookup(AT_FDCWD, pathname, LOOKUP_FOLLOW, &old_nd); 4575+ ret = do_path_lookup(AT_FDCWD, pathname, LOOKUP_FOLLOW, &old_nd);
4727+ vxdprintk(VXD_CBIT(misc, 2), 4576+ vxdprintk(VXD_CBIT(misc, 2),
4728+ "do_path_lookup(old): %d [r=%d]", 4577+ "do_path_lookup(old): %d", ret);
4729+ ret, mnt_get_count(real_mount(old_nd.path.mnt)));
4730+ if (ret < 0) 4578+ if (ret < 0)
4731+ goto out_free_path; 4579+ goto out_free_path;
4732+ 4580+
4733+ old_path = old_nd.path; 4581+ /* dentry/mnt refs handed over to old_path */
4734+ old_dentry = old_path.dentry; 4582+ old_path = &old_nd.path;
4735+ mode = old_dentry->d_inode->i_mode; 4583+ /* no explicit reference for old_dentry here */
4584+ old_dentry = old_path->dentry;
4736+ 4585+
4737+ to = d_path(&old_path, path, PATH_MAX-2); 4586+ mode = old_dentry->d_inode->i_mode;
4587+ to = d_path(old_path, path, PATH_MAX-2);
4738+ pathlen = strlen(to); 4588+ pathlen = strlen(to);
4739+ vxdprintk(VXD_CBIT(misc, 2), 4589+ vxdprintk(VXD_CBIT(misc, 2),
4740+ "old path " VS_Q("%s") " [%p:" VS_Q("%.*s") ":%d]", to, 4590+ "old path " VS_Q("%s") " [%p:" VS_Q("%.*s") ":%d]", to,
@@ -4751,14 +4601,17 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4751+ goto out_rel_old; 4601+ goto out_rel_old;
4752+ 4602+
4753+ vxdprintk(VXD_CBIT(misc, 1), "temp copy " VS_Q("%s"), to); 4603+ vxdprintk(VXD_CBIT(misc, 1), "temp copy " VS_Q("%s"), to);
4754+ /* dir_nd will have refs to dentry and mnt */ 4604+
4605+ /* dir_nd.path will have refs to dentry and mnt */
4755+ ret = do_path_lookup(AT_FDCWD, to, 4606+ ret = do_path_lookup(AT_FDCWD, to,
4756+ LOOKUP_PARENT | LOOKUP_OPEN | LOOKUP_CREATE, &dir_nd); 4607+ LOOKUP_PARENT | LOOKUP_OPEN | LOOKUP_CREATE, &dir_nd);
4757+ vxdprintk(VXD_CBIT(misc, 2), "do_path_lookup(new): %d", ret); 4608+ vxdprintk(VXD_CBIT(misc, 2), "do_path_lookup(new): %d", ret);
4758+ if (ret < 0) 4609+ if (ret < 0)
4759+ goto retry; 4610+ goto retry;
4760+ 4611+
4761+ /* this puppy downs the dir inode mutex if successful */ 4612+ /* this puppy downs the dir inode mutex if successful.
4613+ dir_path will hold refs to dentry and mnt and
4614+ we'll have write access to the mnt */
4762+ new_dentry = kern_path_create(AT_FDCWD, to, &dir_path, 0); 4615+ new_dentry = kern_path_create(AT_FDCWD, to, &dir_path, 0);
4763+ if (!new_dentry || IS_ERR(new_dentry)) { 4616+ if (!new_dentry || IS_ERR(new_dentry)) {
4764+ path_put(&dir_nd.path); 4617+ path_put(&dir_nd.path);
@@ -4767,22 +4620,36 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4767+ PTR_ERR(new_dentry)); 4620+ PTR_ERR(new_dentry));
4768+ goto retry; 4621+ goto retry;
4769+ } 4622+ }
4770+ path_put(&dir_path);
4771+ vxdprintk(VXD_CBIT(misc, 2), 4623+ vxdprintk(VXD_CBIT(misc, 2),
4772+ "kern_path_create(new): %p [" VS_Q("%.*s") ":%d]", 4624+ "kern_path_create(new): %p [" VS_Q("%.*s") ":%d]",
4773+ new_dentry, 4625+ new_dentry,
4774+ new_dentry->d_name.len, new_dentry->d_name.name, 4626+ new_dentry->d_name.len, new_dentry->d_name.name,
4775+ new_dentry->d_name.len); 4627+ new_dentry->d_name.len);
4776+ 4628+
4629+ /* take a reference on new_dentry */
4630+ dget(new_dentry);
4631+
4632+ /* dentry/mnt refs handed over to new_path */
4633+ new_path = &dir_path;
4634+
4635+ /* dentry for old/new dir */
4777+ dir = dir_nd.path.dentry; 4636+ dir = dir_nd.path.dentry;
4778+ 4637+
4779+ ret = vfs_create(dir->d_inode, new_dentry, mode, &dir_nd); 4638+ /* give up reference on dir */
4639+ dput(new_path->dentry);
4640+
4641+ /* new_dentry already has a reference */
4642+ new_path->dentry = new_dentry;
4643+
4644+ ret = vfs_create(dir->d_inode, new_dentry, mode, 1);
4780+ vxdprintk(VXD_CBIT(misc, 2), 4645+ vxdprintk(VXD_CBIT(misc, 2),
4781+ "vfs_create(new): %d", ret); 4646+ "vfs_create(new): %d", ret);
4782+ if (ret == -EEXIST) { 4647+ if (ret == -EEXIST) {
4783+ mutex_unlock(&dir->d_inode->i_mutex);
4784+ path_put(&dir_nd.path); 4648+ path_put(&dir_nd.path);
4785+ dput(new_dentry); 4649+ mutex_unlock(&dir->d_inode->i_mutex);
4650+ mnt_drop_write(new_path->mnt);
4651+ path_put(new_path);
4652+ new_dentry = NULL;
4786+ goto retry; 4653+ goto retry;
4787+ } 4654+ }
4788+ else if (ret < 0) 4655+ else if (ret < 0)
@@ -4793,10 +4660,8 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4793+ if ((redo = d_unhashed(old_dentry))) 4660+ if ((redo = d_unhashed(old_dentry)))
4794+ goto out_unlock_new; 4661+ goto out_unlock_new;
4795+ 4662+
4796+ path_get(&old_path); 4663+ /* doesn't change refs for old_path */
4797+ /* this one cleans up the dentry/mnt in case of failure */ 4664+ old_file = dentry_open(old_path, O_RDONLY, current_cred());
4798+ old_file = dentry_open(old_dentry, old_path.mnt,
4799+ O_RDONLY, current_cred());
4800+ vxdprintk(VXD_CBIT(misc, 2), 4665+ vxdprintk(VXD_CBIT(misc, 2),
4801+ "dentry_open(old): %p", old_file); 4666+ "dentry_open(old): %p", old_file);
4802+ if (IS_ERR(old_file)) { 4667+ if (IS_ERR(old_file)) {
@@ -4804,11 +4669,8 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4804+ goto out_unlock_new; 4669+ goto out_unlock_new;
4805+ } 4670+ }
4806+ 4671+
4807+ dget(new_dentry); 4672+ /* doesn't change refs for new_path */
4808+ mntget(old_path.mnt); 4673+ new_file = dentry_open(new_path, O_WRONLY, current_cred());
4809+ /* this one cleans up the dentry/mnt in case of failure */
4810+ new_file = dentry_open(new_dentry, old_path.mnt,
4811+ O_WRONLY, current_cred());
4812+ vxdprintk(VXD_CBIT(misc, 2), 4674+ vxdprintk(VXD_CBIT(misc, 2),
4813+ "dentry_open(new): %p", new_file); 4675+ "dentry_open(new): %p", new_file);
4814+ if (IS_ERR(new_file)) { 4676+ if (IS_ERR(new_file)) {
@@ -4816,6 +4678,14 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4816+ goto out_fput_old; 4678+ goto out_fput_old;
4817+ } 4679+ }
4818+ 4680+
4681+ /* unlock the inode mutex from kern_path_create() */
4682+ mutex_unlock(&dir->d_inode->i_mutex);
4683+
4684+ /* drop write access to mnt */
4685+ mnt_drop_write(new_path->mnt);
4686+
4687+ drop = 0;
4688+
4819+ size = i_size_read(old_file->f_dentry->d_inode); 4689+ size = i_size_read(old_file->f_dentry->d_inode);
4820+ ret = do_cow_splice(old_file, new_file, size); 4690+ ret = do_cow_splice(old_file, new_file, size);
4821+ vxdprintk(VXD_CBIT(misc, 2), "do_splice_direct: %d", ret); 4691+ vxdprintk(VXD_CBIT(misc, 2), "do_splice_direct: %d", ret);
@@ -4837,6 +4707,7 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4837+ mark_inode_dirty(new_inode); 4707+ mark_inode_dirty(new_inode);
4838+ } 4708+ }
4839+ 4709+
4710+ /* lock rename mutex */
4840+ mutex_lock(&old_dentry->d_inode->i_sb->s_vfs_rename_mutex); 4711+ mutex_lock(&old_dentry->d_inode->i_sb->s_vfs_rename_mutex);
4841+ 4712+
4842+ /* drop out late */ 4713+ /* drop out late */
@@ -4870,7 +4741,17 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4870+ fput(old_file); 4741+ fput(old_file);
4871+ 4742+
4872+out_unlock_new: 4743+out_unlock_new:
4873+ mutex_unlock(&dir->d_inode->i_mutex); 4744+ /* drop references from dir_nd.path */
4745+ path_put(&dir_nd.path);
4746+
4747+ if (drop) {
4748+ /* unlock the inode mutex from kern_path_create() */
4749+ mutex_unlock(&dir->d_inode->i_mutex);
4750+
4751+ /* drop write access to mnt */
4752+ mnt_drop_write(new_path->mnt);
4753+ }
4754+
4874+ if (!ret) 4755+ if (!ret)
4875+ goto out_redo; 4756+ goto out_redo;
4876+ 4757+
@@ -4880,25 +4761,28 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4880+out_redo: 4761+out_redo:
4881+ if (!redo) 4762+ if (!redo)
4882+ goto out_rel_both; 4763+ goto out_rel_both;
4883+ /* lookup dentry once again */ 4764+
4884+ /* old_nd.path is freed as old_path in out_rel_old */ 4765+ /* lookup dentry once again
4766+ old_nd.path will be freed as old_path in out_rel_old */
4885+ ret = do_path_lookup(AT_FDCWD, pathname, LOOKUP_FOLLOW, &old_nd); 4767+ ret = do_path_lookup(AT_FDCWD, pathname, LOOKUP_FOLLOW, &old_nd);
4886+ if (ret) 4768+ if (ret)
4887+ goto out_rel_both; 4769+ goto out_rel_both;
4888+ 4770+
4771+ /* drop reference on new_dentry */
4889+ dput(new_dentry); 4772+ dput(new_dentry);
4890+ new_dentry = old_nd.path.dentry; 4773+ new_dentry = old_path->dentry;
4774+ dget(new_dentry);
4891+ vxdprintk(VXD_CBIT(misc, 2), 4775+ vxdprintk(VXD_CBIT(misc, 2),
4892+ "do_path_lookup(redo): %p [" VS_Q("%.*s") ":%d]", 4776+ "do_path_lookup(redo): %p [" VS_Q("%.*s") ":%d]",
4893+ new_dentry, 4777+ new_dentry,
4894+ new_dentry->d_name.len, new_dentry->d_name.name, 4778+ new_dentry->d_name.len, new_dentry->d_name.name,
4895+ new_dentry->d_name.len); 4779+ new_dentry->d_name.len);
4896+ dget(new_dentry);
4897+ 4780+
4898+out_rel_both: 4781+out_rel_both:
4899+ path_put(&dir_nd.path); 4782+ if (new_path)
4783+ path_put(new_path);
4900+out_rel_old: 4784+out_rel_old:
4901+ path_put(&old_path); 4785+ path_put(old_path);
4902+out_free_path: 4786+out_free_path:
4903+ kfree(path); 4787+ kfree(path);
4904+out: 4788+out:
@@ -4907,8 +4791,7 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4907+ new_dentry = ERR_PTR(ret); 4791+ new_dentry = ERR_PTR(ret);
4908+ } 4792+ }
4909+ vxdprintk(VXD_CBIT(misc, 3), 4793+ vxdprintk(VXD_CBIT(misc, 3),
4910+ "cow_break_link returning with %p [r=%d]", 4794+ "cow_break_link returning with %p", new_dentry);
4911+ new_dentry, mnt_get_count(real_mount(old_nd.path.mnt)));
4912+ return new_dentry; 4795+ return new_dentry;
4913+} 4796+}
4914+ 4797+
@@ -4941,18 +4824,18 @@ diff -NurpP --minimal linux-3.4.57/fs/namei.c linux-3.4.57-vs2.3.3.9/fs/namei.c
4941 /* get the link contents into pagecache */ 4824 /* get the link contents into pagecache */
4942 static char *page_getlink(struct dentry * dentry, struct page **ppage) 4825 static char *page_getlink(struct dentry * dentry, struct page **ppage)
4943 { 4826 {
4944@@ -3499,3 +3890,4 @@ EXPORT_SYMBOL(vfs_symlink); 4827@@ -4099,3 +4524,4 @@ EXPORT_SYMBOL(vfs_symlink);
4945 EXPORT_SYMBOL(vfs_unlink); 4828 EXPORT_SYMBOL(vfs_unlink);
4946 EXPORT_SYMBOL(dentry_unhash); 4829 EXPORT_SYMBOL(dentry_unhash);
4947 EXPORT_SYMBOL(generic_readlink); 4830 EXPORT_SYMBOL(generic_readlink);
4948+EXPORT_SYMBOL(vx_info_mnt_namespace); 4831+EXPORT_SYMBOL(vx_info_mnt_namespace);
4949diff -NurpP --minimal linux-3.4.57/fs/namespace.c linux-3.4.57-vs2.3.3.9/fs/namespace.c 4832diff -NurpP --minimal linux-3.10.17/fs/namespace.c linux-3.10.17-vs2.3.6.6/fs/namespace.c
4950--- linux-3.4.57/fs/namespace.c 2013-08-13 14:13:33.000000000 +0000 4833--- linux-3.10.17/fs/namespace.c 2013-10-25 15:17:43.000000000 +0000
4951+++ linux-3.4.57-vs2.3.3.9/fs/namespace.c 2012-06-28 14:45:07.000000000 +0000 4834+++ linux-3.10.17-vs2.3.6.6/fs/namespace.c 2013-10-09 17:37:22.000000000 +0000
4952@@ -20,6 +20,11 @@ 4835@@ -23,6 +23,11 @@
4953 #include <linux/fs_struct.h> /* get_fs_root et.al. */
4954 #include <linux/fsnotify.h> /* fsnotify_vfsmount_delete */
4955 #include <linux/uaccess.h> 4836 #include <linux/uaccess.h>
4837 #include <linux/proc_ns.h>
4838 #include <linux/magic.h>
4956+#include <linux/vs_base.h> 4839+#include <linux/vs_base.h>
4957+#include <linux/vs_context.h> 4840+#include <linux/vs_context.h>
4958+#include <linux/vs_tag.h> 4841+#include <linux/vs_tag.h>
@@ -4961,7 +4844,7 @@ diff -NurpP --minimal linux-3.4.57/fs/namespace.c linux-3.4.57-vs2.3.3.9/fs/name
4961 #include "pnode.h" 4844 #include "pnode.h"
4962 #include "internal.h" 4845 #include "internal.h"
4963 4846
4964@@ -697,6 +702,10 @@ vfs_kern_mount(struct file_system_type * 4847@@ -780,6 +785,10 @@ vfs_kern_mount(struct file_system_type *
4965 if (!type) 4848 if (!type)
4966 return ERR_PTR(-ENODEV); 4849 return ERR_PTR(-ENODEV);
4967 4850
@@ -4972,108 +4855,56 @@ diff -NurpP --minimal linux-3.4.57/fs/namespace.c linux-3.4.57-vs2.3.3.9/fs/name
4972 mnt = alloc_vfsmnt(name); 4855 mnt = alloc_vfsmnt(name);
4973 if (!mnt) 4856 if (!mnt)
4974 return ERR_PTR(-ENOMEM); 4857 return ERR_PTR(-ENOMEM);
4975@@ -745,6 +754,7 @@ static struct mount *clone_mnt(struct mo 4858@@ -836,6 +845,7 @@ static struct mount *clone_mnt(struct mo
4976 mnt->mnt.mnt_root = dget(root); 4859 mnt->mnt.mnt_root = dget(root);
4977 mnt->mnt_mountpoint = mnt->mnt.mnt_root; 4860 mnt->mnt_mountpoint = mnt->mnt.mnt_root;
4978 mnt->mnt_parent = mnt; 4861 mnt->mnt_parent = mnt;
4979+ mnt->mnt_tag = old->mnt_tag; 4862+ mnt->mnt_tag = old->mnt_tag;
4980 br_write_lock(vfsmount_lock); 4863 br_write_lock(&vfsmount_lock);
4981 list_add_tail(&mnt->mnt_instance, &sb->s_mounts); 4864 list_add_tail(&mnt->mnt_instance, &sb->s_mounts);
4982 br_write_unlock(vfsmount_lock); 4865 br_write_unlock(&vfsmount_lock);
4983@@ -1210,7 +1220,7 @@ SYSCALL_DEFINE2(umount, char __user *, n 4866@@ -1685,6 +1695,7 @@ static int do_change_type(struct path *p
4984 goto dput_and_out;
4985
4986 retval = -EPERM;
4987- if (!capable(CAP_SYS_ADMIN))
4988+ if (!vx_capable(CAP_SYS_ADMIN, VXC_SECURE_MOUNT))
4989 goto dput_and_out;
4990
4991 retval = do_umount(mnt, flags);
4992@@ -1236,7 +1246,7 @@ SYSCALL_DEFINE1(oldumount, char __user *
4993
4994 static int mount_is_safe(struct path *path)
4995 {
4996- if (capable(CAP_SYS_ADMIN))
4997+ if (vx_capable(CAP_SYS_ADMIN, VXC_SECURE_MOUNT))
4998 return 0;
4999 return -EPERM;
5000 #ifdef notyet
5001@@ -1549,7 +1559,7 @@ static int do_change_type(struct path *p
5002 int type;
5003 int err = 0;
5004
5005- if (!capable(CAP_SYS_ADMIN))
5006+ if (!vx_capable(CAP_SYS_ADMIN, VXC_NAMESPACE))
5007 return -EPERM;
5008
5009 if (path->dentry != path->mnt->mnt_root)
5010@@ -1565,6 +1575,7 @@ static int do_change_type(struct path *p
5011 if (err) 4867 if (err)
5012 goto out_unlock; 4868 goto out_unlock;
5013 } 4869 }
5014+ // mnt->mnt_flags = mnt_flags; 4870+ // mnt->mnt_flags = mnt_flags;
5015 4871
5016 br_write_lock(vfsmount_lock); 4872 br_write_lock(&vfsmount_lock);
5017 for (m = mnt; m; m = (recurse ? next_mnt(m, mnt) : NULL)) 4873 for (m = mnt; m; m = (recurse ? next_mnt(m, mnt) : NULL))
5018@@ -1580,12 +1591,14 @@ static int do_change_type(struct path *p 4874@@ -1700,12 +1711,14 @@ static int do_change_type(struct path *p
5019 * do loopback mount. 4875 * do loopback mount.
5020 */ 4876 */
5021 static int do_loopback(struct path *path, char *old_name, 4877 static int do_loopback(struct path *path, const char *old_name,
5022- int recurse) 4878- int recurse)
5023+ tag_t tag, unsigned long flags, int mnt_flags) 4879+ vtag_t tag, unsigned long flags, int mnt_flags)
5024 { 4880 {
5025 LIST_HEAD(umount_list);
5026 struct path old_path; 4881 struct path old_path;
5027 struct mount *mnt = NULL, *old; 4882 struct mount *mnt = NULL, *old, *parent;
5028 int err = mount_is_safe(path); 4883 struct mountpoint *mp;
5029+ int recurse = flags & MS_REC; 4884+ int recurse = flags & MS_REC;
4885 int err;
5030+ 4886+
5031 if (err)
5032 return err;
5033 if (!old_name || !*old_name) 4887 if (!old_name || !*old_name)
5034@@ -1653,13 +1666,13 @@ static int change_mount_flags(struct vfs 4888 return -EINVAL;
4889 err = kern_path(old_name, LOOKUP_FOLLOW|LOOKUP_AUTOMOUNT, &old_path);
4890@@ -1780,7 +1793,7 @@ static int change_mount_flags(struct vfs
5035 * on it - tough luck. 4891 * on it - tough luck.
5036 */ 4892 */
5037 static int do_remount(struct path *path, int flags, int mnt_flags, 4893 static int do_remount(struct path *path, int flags, int mnt_flags,
5038- void *data) 4894- void *data)
5039+ void *data, xid_t xid) 4895+ void *data, vxid_t xid)
5040 { 4896 {
5041 int err; 4897 int err;
5042 struct super_block *sb = path->mnt->mnt_sb; 4898 struct super_block *sb = path->mnt->mnt_sb;
5043 struct mount *mnt = real_mount(path->mnt); 4899@@ -2264,6 +2277,7 @@ long do_mount(const char *dev_name, cons
5044
5045- if (!capable(CAP_SYS_ADMIN))
5046+ if (!vx_capable(CAP_SYS_ADMIN, VXC_SECURE_REMOUNT))
5047 return -EPERM;
5048
5049 if (!check_mnt(mnt))
5050@@ -1708,7 +1721,7 @@ static int do_move_mount(struct path *pa
5051 struct mount *p;
5052 struct mount *old;
5053 int err = 0;
5054- if (!capable(CAP_SYS_ADMIN))
5055+ if (!vx_capable(CAP_SYS_ADMIN, VXC_SECURE_MOUNT))
5056 return -EPERM;
5057 if (!old_name || !*old_name)
5058 return -EINVAL;
5059@@ -1859,7 +1872,7 @@ static int do_new_mount(struct path *pat
5060 return -EINVAL;
5061
5062 /* we need capabilities... */
5063- if (!capable(CAP_SYS_ADMIN))
5064+ if (!vx_capable(CAP_SYS_ADMIN, VXC_SECURE_MOUNT))
5065 return -EPERM;
5066
5067 mnt = do_kern_mount(type, flags, name, data);
5068@@ -2129,6 +2142,7 @@ long do_mount(char *dev_name, char *dir_
5069 struct path path; 4900 struct path path;
5070 int retval = 0; 4901 int retval = 0;
5071 int mnt_flags = 0; 4902 int mnt_flags = 0;
5072+ tag_t tag = 0; 4903+ vtag_t tag = 0;
5073 4904
5074 /* Discard magic */ 4905 /* Discard magic */
5075 if ((flags & MS_MGC_MSK) == MS_MGC_VAL) 4906 if ((flags & MS_MGC_MSK) == MS_MGC_VAL)
5076@@ -2156,6 +2170,12 @@ long do_mount(char *dev_name, char *dir_ 4907@@ -2293,6 +2307,12 @@ long do_mount(const char *dev_name, cons
5077 if (!(flags & MS_NOATIME)) 4908 if (!(flags & MS_NOATIME))
5078 mnt_flags |= MNT_RELATIME; 4909 mnt_flags |= MNT_RELATIME;
5079 4910
@@ -5086,11 +4917,11 @@ diff -NurpP --minimal linux-3.4.57/fs/namespace.c linux-3.4.57-vs2.3.3.9/fs/name
5086 /* Separate the per-mountpoint flags */ 4917 /* Separate the per-mountpoint flags */
5087 if (flags & MS_NOSUID) 4918 if (flags & MS_NOSUID)
5088 mnt_flags |= MNT_NOSUID; 4919 mnt_flags |= MNT_NOSUID;
5089@@ -2172,15 +2192,17 @@ long do_mount(char *dev_name, char *dir_ 4920@@ -2309,15 +2329,17 @@ long do_mount(const char *dev_name, cons
5090 if (flags & MS_RDONLY) 4921 if (flags & MS_RDONLY)
5091 mnt_flags |= MNT_READONLY; 4922 mnt_flags |= MNT_READONLY;
5092 4923
5093+ if (!capable(CAP_SYS_ADMIN)) 4924+ if (!vx_capable(CAP_SYS_ADMIN, VXC_DEV_MOUNT))
5094+ mnt_flags |= MNT_NODEV; 4925+ mnt_flags |= MNT_NODEV;
5095 flags &= ~(MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_ACTIVE | MS_BORN | 4926 flags &= ~(MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_ACTIVE | MS_BORN |
5096 MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT | 4927 MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
@@ -5106,20 +4937,20 @@ diff -NurpP --minimal linux-3.4.57/fs/namespace.c linux-3.4.57-vs2.3.3.9/fs/name
5106 else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE)) 4937 else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
5107 retval = do_change_type(&path, flags); 4938 retval = do_change_type(&path, flags);
5108 else if (flags & MS_MOVE) 4939 else if (flags & MS_MOVE)
5109@@ -2283,6 +2305,7 @@ static struct mnt_namespace *dup_mnt_ns( 4940@@ -2426,6 +2448,7 @@ static struct mnt_namespace *dup_mnt_ns(
5110 q = next_mnt(q, new); 4941 q = next_mnt(q, new);
5111 } 4942 }
5112 up_write(&namespace_sem); 4943 namespace_unlock();
5113+ atomic_inc(&vs_global_mnt_ns); 4944+ atomic_inc(&vs_global_mnt_ns);
5114 4945
5115 if (rootmnt) 4946 if (rootmnt)
5116 mntput(rootmnt); 4947 mntput(rootmnt);
5117@@ -2479,9 +2502,10 @@ SYSCALL_DEFINE2(pivot_root, const char _ 4948@@ -2624,9 +2647,10 @@ SYSCALL_DEFINE2(pivot_root, const char _
5118 error = -EINVAL;
5119 new_mnt = real_mount(new.mnt); 4949 new_mnt = real_mount(new.mnt);
5120 root_mnt = real_mount(root.mnt); 4950 root_mnt = real_mount(root.mnt);
5121- if (IS_MNT_SHARED(real_mount(old.mnt)) || 4951 old_mnt = real_mount(old.mnt);
5122+ if ((IS_MNT_SHARED(real_mount(old.mnt)) || 4952- if (IS_MNT_SHARED(old_mnt) ||
4953+ if ((IS_MNT_SHARED(old_mnt) ||
5123 IS_MNT_SHARED(new_mnt->mnt_parent) || 4954 IS_MNT_SHARED(new_mnt->mnt_parent) ||
5124- IS_MNT_SHARED(root_mnt->mnt_parent)) 4955- IS_MNT_SHARED(root_mnt->mnt_parent))
5125+ IS_MNT_SHARED(root_mnt->mnt_parent)) && 4956+ IS_MNT_SHARED(root_mnt->mnt_parent)) &&
@@ -5127,18 +4958,18 @@ diff -NurpP --minimal linux-3.4.57/fs/namespace.c linux-3.4.57-vs2.3.3.9/fs/name
5127 goto out4; 4958 goto out4;
5128 if (!check_mnt(root_mnt) || !check_mnt(new_mnt)) 4959 if (!check_mnt(root_mnt) || !check_mnt(new_mnt))
5129 goto out4; 4960 goto out4;
5130@@ -2602,6 +2626,7 @@ void put_mnt_ns(struct mnt_namespace *ns 4961@@ -2752,6 +2776,7 @@ void put_mnt_ns(struct mnt_namespace *ns
5131 br_write_unlock(vfsmount_lock); 4962 umount_tree(ns->root, 0);
5132 up_write(&namespace_sem); 4963 br_write_unlock(&vfsmount_lock);
5133 release_mounts(&umount_list); 4964 namespace_unlock();
5134+ atomic_dec(&vs_global_mnt_ns); 4965+ atomic_dec(&vs_global_mnt_ns);
5135 kfree(ns); 4966 free_mnt_ns(ns);
5136 } 4967 }
5137 4968
5138diff -NurpP --minimal linux-3.4.57/fs/nfs/client.c linux-3.4.57-vs2.3.3.9/fs/nfs/client.c 4969diff -NurpP --minimal linux-3.10.17/fs/nfs/client.c linux-3.10.17-vs2.3.6.6/fs/nfs/client.c
5139--- linux-3.4.57/fs/nfs/client.c 2013-08-13 14:13:33.000000000 +0000 4970--- linux-3.10.17/fs/nfs/client.c 2013-07-14 17:01:28.000000000 +0000
5140+++ linux-3.4.57-vs2.3.3.9/fs/nfs/client.c 2013-01-16 00:15:57.000000000 +0000 4971+++ linux-3.10.17-vs2.3.6.6/fs/nfs/client.c 2013-08-22 20:29:59.000000000 +0000
5141@@ -801,6 +801,9 @@ static int nfs_init_server_rpcclient(str 4972@@ -684,6 +684,9 @@ int nfs_init_server_rpcclient(struct nfs
5142 if (server->flags & NFS_MOUNT_SOFT) 4973 if (server->flags & NFS_MOUNT_SOFT)
5143 server->client->cl_softrtry = 1; 4974 server->client->cl_softrtry = 1;
5144 4975
@@ -5147,8 +4978,8 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/client.c linux-3.4.57-vs2.3.3.9/fs/nfs
5147+ server->client->cl_tag = 1; 4978+ server->client->cl_tag = 1;
5148 return 0; 4979 return 0;
5149 } 4980 }
5150 4981 EXPORT_SYMBOL_GPL(nfs_init_server_rpcclient);
5151@@ -976,6 +979,10 @@ static void nfs_server_set_fsinfo(struct 4982@@ -863,6 +866,10 @@ static void nfs_server_set_fsinfo(struct
5152 server->acdirmin = server->acdirmax = 0; 4983 server->acdirmin = server->acdirmax = 0;
5153 } 4984 }
5154 4985
@@ -5159,10 +4990,10 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/client.c linux-3.4.57-vs2.3.3.9/fs/nfs
5159 server->maxfilesize = fsinfo->maxfilesize; 4990 server->maxfilesize = fsinfo->maxfilesize;
5160 4991
5161 server->time_delta = fsinfo->time_delta; 4992 server->time_delta = fsinfo->time_delta;
5162diff -NurpP --minimal linux-3.4.57/fs/nfs/dir.c linux-3.4.57-vs2.3.3.9/fs/nfs/dir.c 4993diff -NurpP --minimal linux-3.10.17/fs/nfs/dir.c linux-3.10.17-vs2.3.6.6/fs/nfs/dir.c
5163--- linux-3.4.57/fs/nfs/dir.c 2013-08-13 14:13:33.000000000 +0000 4994--- linux-3.10.17/fs/nfs/dir.c 2013-07-14 17:01:28.000000000 +0000
5164+++ linux-3.4.57-vs2.3.3.9/fs/nfs/dir.c 2013-01-16 00:15:57.000000000 +0000 4995+++ linux-3.10.17-vs2.3.6.6/fs/nfs/dir.c 2013-08-22 20:29:59.000000000 +0000
5165@@ -35,6 +35,7 @@ 4996@@ -36,6 +36,7 @@
5166 #include <linux/sched.h> 4997 #include <linux/sched.h>
5167 #include <linux/kmemleak.h> 4998 #include <linux/kmemleak.h>
5168 #include <linux/xattr.h> 4999 #include <linux/xattr.h>
@@ -5170,18 +5001,18 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/dir.c linux-3.4.57-vs2.3.3.9/fs/nfs/di
5170 5001
5171 #include "delegation.h" 5002 #include "delegation.h"
5172 #include "iostat.h" 5003 #include "iostat.h"
5173@@ -1314,6 +1315,7 @@ static struct dentry *nfs_lookup(struct 5004@@ -1300,6 +1301,7 @@ struct dentry *nfs_lookup(struct inode *
5174 if (IS_ERR(res)) 5005 /* Success: notify readdir to use READDIRPLUS */
5175 goto out_unblock_sillyrename; 5006 nfs_advise_use_readdirplus(dir);
5176 5007
5177+ dx_propagate_tag(nd, inode); 5008+ dx_propagate_tag(nd, inode);
5178 no_entry: 5009 no_entry:
5179 res = d_materialise_unique(dentry, inode); 5010 res = d_materialise_unique(dentry, inode);
5180 if (res != NULL) { 5011 if (res != NULL) {
5181diff -NurpP --minimal linux-3.4.57/fs/nfs/inode.c linux-3.4.57-vs2.3.3.9/fs/nfs/inode.c 5012diff -NurpP --minimal linux-3.10.17/fs/nfs/inode.c linux-3.10.17-vs2.3.6.6/fs/nfs/inode.c
5182--- linux-3.4.57/fs/nfs/inode.c 2013-08-13 14:13:34.000000000 +0000 5013--- linux-3.10.17/fs/nfs/inode.c 2013-07-14 17:01:28.000000000 +0000
5183+++ linux-3.4.57-vs2.3.3.9/fs/nfs/inode.c 2012-10-22 13:09:53.000000000 +0000 5014+++ linux-3.10.17-vs2.3.6.6/fs/nfs/inode.c 2013-08-22 20:29:59.000000000 +0000
5184@@ -40,6 +40,7 @@ 5015@@ -39,6 +39,7 @@
5185 #include <linux/compat.h> 5016 #include <linux/compat.h>
5186 #include <linux/freezer.h> 5017 #include <linux/freezer.h>
5187 #include <linux/crc32.h> 5018 #include <linux/crc32.h>
@@ -5189,55 +5020,53 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/inode.c linux-3.4.57-vs2.3.3.9/fs/nfs/
5189 5020
5190 #include <asm/uaccess.h> 5021 #include <asm/uaccess.h>
5191 5022
5192@@ -275,6 +276,8 @@ nfs_fhget(struct super_block *sb, struct 5023@@ -290,6 +291,8 @@ nfs_fhget(struct super_block *sb, struct
5193 if (inode->i_state & I_NEW) { 5024 if (inode->i_state & I_NEW) {
5194 struct nfs_inode *nfsi = NFS_I(inode); 5025 struct nfs_inode *nfsi = NFS_I(inode);
5195 unsigned long now = jiffies; 5026 unsigned long now = jiffies;
5196+ uid_t uid; 5027+ kuid_t kuid;
5197+ gid_t gid; 5028+ kgid_t kgid;
5198 5029
5199 /* We set i_ino for the few things that still rely on it, 5030 /* We set i_ino for the few things that still rely on it,
5200 * such as stat(2) */ 5031 * such as stat(2) */
5201@@ -323,8 +326,8 @@ nfs_fhget(struct super_block *sb, struct 5032@@ -334,8 +337,8 @@ nfs_fhget(struct super_block *sb, struct
5202 inode->i_version = 0; 5033 inode->i_version = 0;
5203 inode->i_size = 0; 5034 inode->i_size = 0;
5204 clear_nlink(inode); 5035 clear_nlink(inode);
5205- inode->i_uid = -2; 5036- inode->i_uid = make_kuid(&init_user_ns, -2);
5206- inode->i_gid = -2; 5037- inode->i_gid = make_kgid(&init_user_ns, -2);
5207+ uid = -2; 5038+ kuid = make_kuid(&init_user_ns, -2);
5208+ gid = -2; 5039+ kgid = make_kgid(&init_user_ns, -2);
5209 inode->i_blocks = 0; 5040 inode->i_blocks = 0;
5210 memset(nfsi->cookieverf, 0, sizeof(nfsi->cookieverf)); 5041 memset(nfsi->cookieverf, 0, sizeof(nfsi->cookieverf));
5211 5042 nfsi->write_io = 0;
5212@@ -361,13 +364,13 @@ nfs_fhget(struct super_block *sb, struct 5043@@ -369,11 +372,11 @@ nfs_fhget(struct super_block *sb, struct
5213 else if (nfs_server_capable(inode, NFS_CAP_NLINK)) 5044 else if (nfs_server_capable(inode, NFS_CAP_NLINK))
5214 nfsi->cache_validity |= NFS_INO_INVALID_ATTR; 5045 nfsi->cache_validity |= NFS_INO_INVALID_ATTR;
5215 if (fattr->valid & NFS_ATTR_FATTR_OWNER) 5046 if (fattr->valid & NFS_ATTR_FATTR_OWNER)
5216- inode->i_uid = fattr->uid; 5047- inode->i_uid = fattr->uid;
5217+ uid = fattr->uid; 5048+ kuid = fattr->uid;
5218 else if (nfs_server_capable(inode, NFS_CAP_OWNER)) 5049 else if (nfs_server_capable(inode, NFS_CAP_OWNER))
5219 nfsi->cache_validity |= NFS_INO_INVALID_ATTR 5050 nfsi->cache_validity |= NFS_INO_INVALID_ATTR;
5220 | NFS_INO_INVALID_ACCESS
5221 | NFS_INO_INVALID_ACL;
5222 if (fattr->valid & NFS_ATTR_FATTR_GROUP) 5051 if (fattr->valid & NFS_ATTR_FATTR_GROUP)
5223- inode->i_gid = fattr->gid; 5052- inode->i_gid = fattr->gid;
5224+ gid = fattr->gid; 5053+ kgid = fattr->gid;
5225 else if (nfs_server_capable(inode, NFS_CAP_OWNER_GROUP)) 5054 else if (nfs_server_capable(inode, NFS_CAP_OWNER_GROUP))
5226 nfsi->cache_validity |= NFS_INO_INVALID_ATTR 5055 nfsi->cache_validity |= NFS_INO_INVALID_ATTR;
5227 | NFS_INO_INVALID_ACCESS 5056 if (fattr->valid & NFS_ATTR_FATTR_BLOCKS_USED)
5228@@ -380,6 +383,11 @@ nfs_fhget(struct super_block *sb, struct 5057@@ -384,6 +387,11 @@ nfs_fhget(struct super_block *sb, struct
5229 */ 5058 */
5230 inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used); 5059 inode->i_blocks = nfs_calc_block_size(fattr->du.nfs3.used);
5231 } 5060 }
5232+ inode->i_uid = INOTAG_UID(DX_TAG(inode), uid, gid); 5061+ inode->i_uid = INOTAG_KUID(DX_TAG(inode), kuid, kgid);
5233+ inode->i_gid = INOTAG_GID(DX_TAG(inode), uid, gid); 5062+ inode->i_gid = INOTAG_KGID(DX_TAG(inode), kuid, kgid);
5234+ inode->i_tag = INOTAG_TAG(DX_TAG(inode), uid, gid, 0); 5063+ inode->i_tag = INOTAG_KTAG(DX_TAG(inode), kuid, kgid, GLOBAL_ROOT_TAG);
5235+ /* maybe fattr->xid someday */ 5064+ /* maybe fattr->xid someday */
5236+ 5065+
5237 nfsi->attrtimeo = NFS_MINATTRTIMEO(inode); 5066 nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
5238 nfsi->attrtimeo_timestamp = now; 5067 nfsi->attrtimeo_timestamp = now;
5239 nfsi->access_cache = RB_ROOT; 5068 nfsi->access_cache = RB_ROOT;
5240@@ -497,6 +505,8 @@ void nfs_setattr_update_inode(struct ino 5069@@ -505,6 +513,8 @@ void nfs_setattr_update_inode(struct ino
5241 inode->i_uid = attr->ia_uid; 5070 inode->i_uid = attr->ia_uid;
5242 if ((attr->ia_valid & ATTR_GID) != 0) 5071 if ((attr->ia_valid & ATTR_GID) != 0)
5243 inode->i_gid = attr->ia_gid; 5072 inode->i_gid = attr->ia_gid;
@@ -5246,95 +5075,72 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/inode.c linux-3.4.57-vs2.3.3.9/fs/nfs/
5246 NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL; 5075 NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
5247 spin_unlock(&inode->i_lock); 5076 spin_unlock(&inode->i_lock);
5248 } 5077 }
5249@@ -946,6 +956,9 @@ static int nfs_check_inode_attributes(st 5078@@ -982,7 +992,9 @@ static int nfs_check_inode_attributes(st
5250 struct nfs_inode *nfsi = NFS_I(inode); 5079 struct nfs_inode *nfsi = NFS_I(inode);
5251 loff_t cur_size, new_isize; 5080 loff_t cur_size, new_isize;
5252 unsigned long invalid = 0; 5081 unsigned long invalid = 0;
5253+ uid_t uid; 5082-
5254+ gid_t gid; 5083+ kuid_t kuid;
5255+ tag_t tag; 5084+ kgid_t kgid;
5256 5085+ ktag_t ktag;
5257 5086
5258 /* Has the inode gone and changed behind our back? */ 5087 if (nfs_have_delegated_attributes(inode))
5259@@ -969,13 +982,18 @@ static int nfs_check_inode_attributes(st 5088 return 0;
5089@@ -1007,13 +1019,18 @@ static int nfs_check_inode_attributes(st
5260 invalid |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE; 5090 invalid |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE;
5261 } 5091 }
5262 5092
5263+ uid = INOTAG_UID(DX_TAG(inode), fattr->uid, fattr->gid); 5093+ kuid = INOTAG_KUID(DX_TAG(inode), fattr->uid, fattr->gid);
5264+ gid = INOTAG_GID(DX_TAG(inode), fattr->uid, fattr->gid); 5094+ kgid = INOTAG_KGID(DX_TAG(inode), fattr->uid, fattr->gid);
5265+ tag = INOTAG_TAG(DX_TAG(inode), fattr->uid, fattr->gid, 0); 5095+ ktag = INOTAG_KTAG(DX_TAG(inode), fattr->uid, fattr->gid, GLOBAL_ROOT_TAG);
5266+ 5096+
5267 /* Have any file permissions changed? */ 5097 /* Have any file permissions changed? */
5268 if ((fattr->valid & NFS_ATTR_FATTR_MODE) && (inode->i_mode & S_IALLUGO) != (fattr->mode & S_IALLUGO)) 5098 if ((fattr->valid & NFS_ATTR_FATTR_MODE) && (inode->i_mode & S_IALLUGO) != (fattr->mode & S_IALLUGO))
5269 invalid |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS | NFS_INO_INVALID_ACL; 5099 invalid |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS | NFS_INO_INVALID_ACL;
5270- if ((fattr->valid & NFS_ATTR_FATTR_OWNER) && inode->i_uid != fattr->uid) 5100- if ((fattr->valid & NFS_ATTR_FATTR_OWNER) && !uid_eq(inode->i_uid, fattr->uid))
5271+ if ((fattr->valid & NFS_ATTR_FATTR_OWNER) && uid != fattr->uid) 5101+ if ((fattr->valid & NFS_ATTR_FATTR_OWNER) && !uid_eq(inode->i_uid, kuid))
5272 invalid |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS | NFS_INO_INVALID_ACL; 5102 invalid |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS | NFS_INO_INVALID_ACL;
5273- if ((fattr->valid & NFS_ATTR_FATTR_GROUP) && inode->i_gid != fattr->gid) 5103- if ((fattr->valid & NFS_ATTR_FATTR_GROUP) && !gid_eq(inode->i_gid, fattr->gid))
5274+ if ((fattr->valid & NFS_ATTR_FATTR_GROUP) && gid != fattr->gid) 5104+ if ((fattr->valid & NFS_ATTR_FATTR_GROUP) && !gid_eq(inode->i_gid, kgid))
5275 invalid |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS | NFS_INO_INVALID_ACL; 5105 invalid |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS | NFS_INO_INVALID_ACL;
5276+ /* maybe check for tag too? */ 5106+ /* maybe check for tag too? */
5277 5107
5278 /* Has the link count changed? */ 5108 /* Has the link count changed? */
5279 if ((fattr->valid & NFS_ATTR_FATTR_NLINK) && inode->i_nlink != fattr->nlink) 5109 if ((fattr->valid & NFS_ATTR_FATTR_NLINK) && inode->i_nlink != fattr->nlink)
5280@@ -1273,6 +1291,9 @@ static int nfs_update_inode(struct inode 5110@@ -1319,6 +1336,9 @@ static int nfs_update_inode(struct inode
5281 unsigned long invalid = 0; 5111 unsigned long invalid = 0;
5282 unsigned long now = jiffies; 5112 unsigned long now = jiffies;
5283 unsigned long save_cache_validity; 5113 unsigned long save_cache_validity;
5284+ uid_t uid; 5114+ kuid_t kuid;
5285+ gid_t gid; 5115+ kgid_t kgid;
5286+ tag_t tag; 5116+ ktag_t ktag;
5287 5117
5288 dfprintk(VFS, "NFS: %s(%s/%ld fh_crc=0x%08x ct=%d info=0x%x)\n", 5118 dfprintk(VFS, "NFS: %s(%s/%ld fh_crc=0x%08x ct=%d info=0x%x)\n",
5289 __func__, inode->i_sb->s_id, inode->i_ino, 5119 __func__, inode->i_sb->s_id, inode->i_ino,
5290@@ -1381,6 +1402,9 @@ static int nfs_update_inode(struct inode 5120@@ -1420,6 +1440,9 @@ static int nfs_update_inode(struct inode
5291 | NFS_INO_REVAL_PAGECACHE 5121 | NFS_INO_REVAL_PAGECACHE
5292 | NFS_INO_REVAL_FORCED); 5122 | NFS_INO_REVAL_FORCED);
5293 5123
5294+ uid = TAGINO_UID(DX_TAG(inode), inode->i_uid, inode->i_tag); 5124+ kuid = TAGINO_KUID(DX_TAG(inode), inode->i_uid, inode->i_tag);
5295+ gid = TAGINO_GID(DX_TAG(inode), inode->i_gid, inode->i_tag); 5125+ kgid = TAGINO_KGID(DX_TAG(inode), inode->i_gid, inode->i_tag);
5296+ tag = inode->i_tag; 5126+ ktag = TAGINO_KTAG(DX_TAG(inode), inode->i_tag);
5297 5127
5298 if (fattr->valid & NFS_ATTR_FATTR_ATIME) 5128 if (fattr->valid & NFS_ATTR_FATTR_ATIME)
5299 memcpy(&inode->i_atime, &fattr->atime, sizeof(inode->i_atime)); 5129 memcpy(&inode->i_atime, &fattr->atime, sizeof(inode->i_atime));
5300@@ -1402,9 +1426,9 @@ static int nfs_update_inode(struct inode 5130@@ -1462,6 +1485,10 @@ static int nfs_update_inode(struct inode
5301 | NFS_INO_REVAL_FORCED);
5302
5303 if (fattr->valid & NFS_ATTR_FATTR_OWNER) {
5304- if (inode->i_uid != fattr->uid) {
5305+ if (uid != fattr->uid) {
5306 invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
5307- inode->i_uid = fattr->uid;
5308+ uid = fattr->uid;
5309 }
5310 } else if (server->caps & NFS_CAP_OWNER)
5311 invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR
5312@@ -1413,9 +1437,9 @@ static int nfs_update_inode(struct inode
5313 | NFS_INO_REVAL_FORCED);
5314
5315 if (fattr->valid & NFS_ATTR_FATTR_GROUP) {
5316- if (inode->i_gid != fattr->gid) {
5317+ if (gid != fattr->gid) {
5318 invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL;
5319- inode->i_gid = fattr->gid;
5320+ gid = fattr->gid;
5321 }
5322 } else if (server->caps & NFS_CAP_OWNER_GROUP)
5323 invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR
5324@@ -1423,6 +1447,10 @@ static int nfs_update_inode(struct inode
5325 | NFS_INO_INVALID_ACL 5131 | NFS_INO_INVALID_ACL
5326 | NFS_INO_REVAL_FORCED); 5132 | NFS_INO_REVAL_FORCED);
5327 5133
5328+ inode->i_uid = INOTAG_UID(DX_TAG(inode), uid, gid); 5134+ inode->i_uid = INOTAG_KUID(DX_TAG(inode), kuid, kgid);
5329+ inode->i_gid = INOTAG_GID(DX_TAG(inode), uid, gid); 5135+ inode->i_gid = INOTAG_KGID(DX_TAG(inode), kuid, kgid);
5330+ inode->i_tag = INOTAG_TAG(DX_TAG(inode), uid, gid, tag); 5136+ inode->i_tag = INOTAG_KTAG(DX_TAG(inode), kuid, kgid, ktag);
5331+ 5137+
5332 if (fattr->valid & NFS_ATTR_FATTR_NLINK) { 5138 if (fattr->valid & NFS_ATTR_FATTR_NLINK) {
5333 if (inode->i_nlink != fattr->nlink) { 5139 if (inode->i_nlink != fattr->nlink) {
5334 invalid |= NFS_INO_INVALID_ATTR; 5140 invalid |= NFS_INO_INVALID_ATTR;
5335diff -NurpP --minimal linux-3.4.57/fs/nfs/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nfs/nfs3xdr.c 5141diff -NurpP --minimal linux-3.10.17/fs/nfs/nfs3xdr.c linux-3.10.17-vs2.3.6.6/fs/nfs/nfs3xdr.c
5336--- linux-3.4.57/fs/nfs/nfs3xdr.c 2012-05-21 16:07:25.000000000 +0000 5142--- linux-3.10.17/fs/nfs/nfs3xdr.c 2013-05-31 13:45:24.000000000 +0000
5337+++ linux-3.4.57-vs2.3.3.9/fs/nfs/nfs3xdr.c 2012-05-21 16:15:05.000000000 +0000 5143+++ linux-3.10.17-vs2.3.6.6/fs/nfs/nfs3xdr.c 2013-08-22 20:29:59.000000000 +0000
5338@@ -20,6 +20,7 @@ 5144@@ -20,6 +20,7 @@
5339 #include <linux/nfs3.h> 5145 #include <linux/nfs3.h>
5340 #include <linux/nfs_fs.h> 5146 #include <linux/nfs_fs.h>
@@ -5343,7 +5149,7 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nf
5343 #include "internal.h" 5149 #include "internal.h"
5344 5150
5345 #define NFSDBG_FACILITY NFSDBG_XDR 5151 #define NFSDBG_FACILITY NFSDBG_XDR
5346@@ -562,7 +563,8 @@ static __be32 *xdr_decode_nfstime3(__be3 5152@@ -558,7 +559,8 @@ static __be32 *xdr_decode_nfstime3(__be3
5347 * set_mtime mtime; 5153 * set_mtime mtime;
5348 * }; 5154 * };
5349 */ 5155 */
@@ -5353,7 +5159,7 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nf
5353 { 5159 {
5354 u32 nbytes; 5160 u32 nbytes;
5355 __be32 *p; 5161 __be32 *p;
5356@@ -594,15 +596,19 @@ static void encode_sattr3(struct xdr_str 5162@@ -590,15 +592,19 @@ static void encode_sattr3(struct xdr_str
5357 } else 5163 } else
5358 *p++ = xdr_zero; 5164 *p++ = xdr_zero;
5359 5165
@@ -5361,9 +5167,9 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nf
5361+ if (attr->ia_valid & ATTR_UID || 5167+ if (attr->ia_valid & ATTR_UID ||
5362+ (tag && (attr->ia_valid & ATTR_TAG))) { 5168+ (tag && (attr->ia_valid & ATTR_TAG))) {
5363 *p++ = xdr_one; 5169 *p++ = xdr_one;
5364- *p++ = cpu_to_be32(attr->ia_uid); 5170- *p++ = cpu_to_be32(from_kuid(&init_user_ns, attr->ia_uid));
5365+ *p++ = cpu_to_be32(TAGINO_UID(tag, 5171+ *p++ = cpu_to_be32(from_kuid(&init_user_ns,
5366+ attr->ia_uid, attr->ia_tag)); 5172+ TAGINO_KUID(tag, attr->ia_uid, attr->ia_tag)));
5367 } else 5173 } else
5368 *p++ = xdr_zero; 5174 *p++ = xdr_zero;
5369 5175
@@ -5371,13 +5177,13 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nf
5371+ if (attr->ia_valid & ATTR_GID || 5177+ if (attr->ia_valid & ATTR_GID ||
5372+ (tag && (attr->ia_valid & ATTR_TAG))) { 5178+ (tag && (attr->ia_valid & ATTR_TAG))) {
5373 *p++ = xdr_one; 5179 *p++ = xdr_one;
5374- *p++ = cpu_to_be32(attr->ia_gid); 5180- *p++ = cpu_to_be32(from_kgid(&init_user_ns, attr->ia_gid));
5375+ *p++ = cpu_to_be32(TAGINO_GID(tag, 5181+ *p++ = cpu_to_be32(from_kgid(&init_user_ns,
5376+ attr->ia_gid, attr->ia_tag)); 5182+ TAGINO_KGID(tag, attr->ia_gid, attr->ia_tag)));
5377 } else 5183 } else
5378 *p++ = xdr_zero; 5184 *p++ = xdr_zero;
5379 5185
5380@@ -878,7 +884,7 @@ static void nfs3_xdr_enc_setattr3args(st 5186@@ -887,7 +893,7 @@ static void nfs3_xdr_enc_setattr3args(st
5381 const struct nfs3_sattrargs *args) 5187 const struct nfs3_sattrargs *args)
5382 { 5188 {
5383 encode_nfs_fh3(xdr, args->fh); 5189 encode_nfs_fh3(xdr, args->fh);
@@ -5386,7 +5192,7 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nf
5386 encode_sattrguard3(xdr, args); 5192 encode_sattrguard3(xdr, args);
5387 } 5193 }
5388 5194
5389@@ -1028,13 +1034,13 @@ static void nfs3_xdr_enc_write3args(stru 5195@@ -1037,13 +1043,13 @@ static void nfs3_xdr_enc_write3args(stru
5390 * }; 5196 * };
5391 */ 5197 */
5392 static void encode_createhow3(struct xdr_stream *xdr, 5198 static void encode_createhow3(struct xdr_stream *xdr,
@@ -5402,7 +5208,7 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nf
5402 break; 5208 break;
5403 case NFS3_CREATE_EXCLUSIVE: 5209 case NFS3_CREATE_EXCLUSIVE:
5404 encode_createverf3(xdr, args->verifier); 5210 encode_createverf3(xdr, args->verifier);
5405@@ -1049,7 +1055,7 @@ static void nfs3_xdr_enc_create3args(str 5211@@ -1058,7 +1064,7 @@ static void nfs3_xdr_enc_create3args(str
5406 const struct nfs3_createargs *args) 5212 const struct nfs3_createargs *args)
5407 { 5213 {
5408 encode_diropargs3(xdr, args->fh, args->name, args->len); 5214 encode_diropargs3(xdr, args->fh, args->name, args->len);
@@ -5411,7 +5217,7 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nf
5411 } 5217 }
5412 5218
5413 /* 5219 /*
5414@@ -1065,7 +1071,7 @@ static void nfs3_xdr_enc_mkdir3args(stru 5220@@ -1074,7 +1080,7 @@ static void nfs3_xdr_enc_mkdir3args(stru
5415 const struct nfs3_mkdirargs *args) 5221 const struct nfs3_mkdirargs *args)
5416 { 5222 {
5417 encode_diropargs3(xdr, args->fh, args->name, args->len); 5223 encode_diropargs3(xdr, args->fh, args->name, args->len);
@@ -5420,7 +5226,7 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nf
5420 } 5226 }
5421 5227
5422 /* 5228 /*
5423@@ -1082,9 +1088,9 @@ static void nfs3_xdr_enc_mkdir3args(stru 5229@@ -1091,9 +1097,9 @@ static void nfs3_xdr_enc_mkdir3args(stru
5424 * }; 5230 * };
5425 */ 5231 */
5426 static void encode_symlinkdata3(struct xdr_stream *xdr, 5232 static void encode_symlinkdata3(struct xdr_stream *xdr,
@@ -5432,7 +5238,7 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nf
5432 encode_nfspath3(xdr, args->pages, args->pathlen); 5238 encode_nfspath3(xdr, args->pages, args->pathlen);
5433 } 5239 }
5434 5240
5435@@ -1093,7 +1099,7 @@ static void nfs3_xdr_enc_symlink3args(st 5241@@ -1102,7 +1108,7 @@ static void nfs3_xdr_enc_symlink3args(st
5436 const struct nfs3_symlinkargs *args) 5242 const struct nfs3_symlinkargs *args)
5437 { 5243 {
5438 encode_diropargs3(xdr, args->fromfh, args->fromname, args->fromlen); 5244 encode_diropargs3(xdr, args->fromfh, args->fromname, args->fromlen);
@@ -5441,7 +5247,7 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nf
5441 } 5247 }
5442 5248
5443 /* 5249 /*
5444@@ -1121,24 +1127,24 @@ static void nfs3_xdr_enc_symlink3args(st 5250@@ -1130,24 +1136,24 @@ static void nfs3_xdr_enc_symlink3args(st
5445 * }; 5251 * };
5446 */ 5252 */
5447 static void encode_devicedata3(struct xdr_stream *xdr, 5253 static void encode_devicedata3(struct xdr_stream *xdr,
@@ -5471,7 +5277,7 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nf
5471 break; 5277 break;
5472 case NF3REG: 5278 case NF3REG:
5473 case NF3DIR: 5279 case NF3DIR:
5474@@ -1153,7 +1159,7 @@ static void nfs3_xdr_enc_mknod3args(stru 5280@@ -1162,7 +1168,7 @@ static void nfs3_xdr_enc_mknod3args(stru
5475 const struct nfs3_mknodargs *args) 5281 const struct nfs3_mknodargs *args)
5476 { 5282 {
5477 encode_diropargs3(xdr, args->fh, args->name, args->len); 5283 encode_diropargs3(xdr, args->fh, args->name, args->len);
@@ -5480,10 +5286,10 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nf
5480 } 5286 }
5481 5287
5482 /* 5288 /*
5483diff -NurpP --minimal linux-3.4.57/fs/nfs/super.c linux-3.4.57-vs2.3.3.9/fs/nfs/super.c 5289diff -NurpP --minimal linux-3.10.17/fs/nfs/super.c linux-3.10.17-vs2.3.6.6/fs/nfs/super.c
5484--- linux-3.4.57/fs/nfs/super.c 2013-08-13 14:13:34.000000000 +0000 5290--- linux-3.10.17/fs/nfs/super.c 2013-07-14 17:01:28.000000000 +0000
5485+++ linux-3.4.57-vs2.3.3.9/fs/nfs/super.c 2013-01-16 00:15:57.000000000 +0000 5291+++ linux-3.10.17-vs2.3.6.6/fs/nfs/super.c 2013-08-22 20:29:59.000000000 +0000
5486@@ -54,6 +54,7 @@ 5292@@ -55,6 +55,7 @@
5487 #include <linux/parser.h> 5293 #include <linux/parser.h>
5488 #include <linux/nsproxy.h> 5294 #include <linux/nsproxy.h>
5489 #include <linux/rcupdate.h> 5295 #include <linux/rcupdate.h>
@@ -5491,15 +5297,7 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/super.c linux-3.4.57-vs2.3.3.9/fs/nfs/
5491 5297
5492 #include <asm/uaccess.h> 5298 #include <asm/uaccess.h>
5493 5299
5494@@ -86,6 +87,7 @@ enum { 5300@@ -103,6 +104,7 @@ enum {
5495 Opt_sharecache, Opt_nosharecache,
5496 Opt_resvport, Opt_noresvport,
5497 Opt_fscache, Opt_nofscache,
5498+ Opt_tag, Opt_notag,
5499
5500 /* Mount options that take integer arguments */
5501 Opt_port,
5502@@ -98,6 +100,7 @@ enum {
5503 Opt_mountport, 5301 Opt_mountport,
5504 Opt_mountvers, 5302 Opt_mountvers,
5505 Opt_minorversion, 5303 Opt_minorversion,
@@ -5507,18 +5305,28 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/super.c linux-3.4.57-vs2.3.3.9/fs/nfs/
5507 5305
5508 /* Mount options that take string arguments */ 5306 /* Mount options that take string arguments */
5509 Opt_nfsvers, 5307 Opt_nfsvers,
5510@@ -180,6 +183,10 @@ static const match_table_t nfs_mount_opt 5308@@ -115,6 +117,9 @@ enum {
5511 /* The following needs to be listed after all other options */ 5309 /* Special mount options */
5512 { Opt_nfsvers, "v%s" }, 5310 Opt_userspace, Opt_deprecated, Opt_sloppy,
5311
5312+ /* Linux-VServer tagging options */
5313+ Opt_tag, Opt_notag,
5314+
5315 Opt_err
5316 };
5317
5318@@ -184,6 +189,10 @@ static const match_table_t nfs_mount_opt
5319 { Opt_fscache_uniq, "fsc=%s" },
5320 { Opt_local_lock, "local_lock=%s" },
5513 5321
5514+ { Opt_tag, "tag" }, 5322+ { Opt_tag, "tag" },
5515+ { Opt_notag, "notag" }, 5323+ { Opt_notag, "notag" },
5516+ { Opt_tagid, "tagid=%u" }, 5324+ { Opt_tagid, "tagid=%u" },
5517+ 5325+
5518 { Opt_err, NULL } 5326 /* The following needs to be listed after all other options */
5519 }; 5327 { Opt_nfsvers, "v%s" },
5520 5328
5521@@ -674,6 +681,7 @@ static void nfs_show_mount_options(struc 5329@@ -635,6 +644,7 @@ static void nfs_show_mount_options(struc
5522 { NFS_MOUNT_NORDIRPLUS, ",nordirplus", "" }, 5330 { NFS_MOUNT_NORDIRPLUS, ",nordirplus", "" },
5523 { NFS_MOUNT_UNSHARED, ",nosharecache", "" }, 5331 { NFS_MOUNT_UNSHARED, ",nosharecache", "" },
5524 { NFS_MOUNT_NORESVPORT, ",noresvport", "" }, 5332 { NFS_MOUNT_NORESVPORT, ",noresvport", "" },
@@ -5526,9 +5334,9 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/super.c linux-3.4.57-vs2.3.3.9/fs/nfs/
5526 { 0, NULL, NULL } 5334 { 0, NULL, NULL }
5527 }; 5335 };
5528 const struct proc_nfs_info *nfs_infop; 5336 const struct proc_nfs_info *nfs_infop;
5529@@ -1286,6 +1294,14 @@ static int nfs_parse_mount_options(char 5337@@ -1261,6 +1271,14 @@ static int nfs_parse_mount_options(char
5530 kfree(mnt->fscache_uniq); 5338 case Opt_nomigration:
5531 mnt->fscache_uniq = NULL; 5339 mnt->options &= NFS_OPTION_MIGRATION;
5532 break; 5340 break;
5533+#ifndef CONFIG_TAGGING_NONE 5341+#ifndef CONFIG_TAGGING_NONE
5534+ case Opt_tag: 5342+ case Opt_tag:
@@ -5541,7 +5349,7 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/super.c linux-3.4.57-vs2.3.3.9/fs/nfs/
5541 5349
5542 /* 5350 /*
5543 * options that take numeric values 5351 * options that take numeric values
5544@@ -1372,6 +1388,12 @@ static int nfs_parse_mount_options(char 5352@@ -1347,6 +1365,12 @@ static int nfs_parse_mount_options(char
5545 goto out_invalid_value; 5353 goto out_invalid_value;
5546 mnt->minorversion = option; 5354 mnt->minorversion = option;
5547 break; 5355 break;
@@ -5554,83 +5362,86 @@ diff -NurpP --minimal linux-3.4.57/fs/nfs/super.c linux-3.4.57-vs2.3.3.9/fs/nfs/
5554 5362
5555 /* 5363 /*
5556 * options that take text values 5364 * options that take text values
5557diff -NurpP --minimal linux-3.4.57/fs/nfsd/auth.c linux-3.4.57-vs2.3.3.9/fs/nfsd/auth.c 5365diff -NurpP --minimal linux-3.10.17/fs/nfsd/auth.c linux-3.10.17-vs2.3.6.6/fs/nfsd/auth.c
5558--- linux-3.4.57/fs/nfsd/auth.c 2010-02-25 10:52:05.000000000 +0000 5366--- linux-3.10.17/fs/nfsd/auth.c 2013-05-31 13:45:24.000000000 +0000
5559+++ linux-3.4.57-vs2.3.3.9/fs/nfsd/auth.c 2012-05-21 16:15:05.000000000 +0000 5367+++ linux-3.10.17-vs2.3.6.6/fs/nfsd/auth.c 2013-08-22 20:29:59.000000000 +0000
5560@@ -1,6 +1,7 @@ 5368@@ -2,6 +2,7 @@
5561 /* Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de> */
5562 5369
5563 #include <linux/sched.h> 5370 #include <linux/sched.h>
5371 #include <linux/user_namespace.h>
5564+#include <linux/vs_tag.h> 5372+#include <linux/vs_tag.h>
5565 #include "nfsd.h" 5373 #include "nfsd.h"
5566 #include "auth.h" 5374 #include "auth.h"
5567 5375
5568@@ -36,6 +37,9 @@ int nfsd_setuser(struct svc_rqst *rqstp, 5376@@ -37,6 +38,9 @@ int nfsd_setuser(struct svc_rqst *rqstp,
5569 5377
5570 new->fsuid = rqstp->rq_cred.cr_uid; 5378 new->fsuid = rqstp->rq_cred.cr_uid;
5571 new->fsgid = rqstp->rq_cred.cr_gid; 5379 new->fsgid = rqstp->rq_cred.cr_gid;
5572+ /* FIXME: this desperately needs a tag :) 5380+ /* FIXME: this desperately needs a tag :)
5573+ new->xid = (xid_t)INOTAG_TAG(DX_TAG_NFSD, cred.cr_uid, cred.cr_gid, 0); 5381+ new->xid = (vxid_t)INOTAG_TAG(DX_TAG_NFSD, cred.cr_uid, cred.cr_gid, 0);
5574+ */ 5382+ */
5575 5383
5576 rqgi = rqstp->rq_cred.cr_group_info; 5384 rqgi = rqstp->rq_cred.cr_group_info;
5577 5385
5578diff -NurpP --minimal linux-3.4.57/fs/nfsd/nfs3xdr.c linux-3.4.57-vs2.3.3.9/fs/nfsd/nfs3xdr.c 5386diff -NurpP --minimal linux-3.10.17/fs/nfsd/nfs3xdr.c linux-3.10.17-vs2.3.6.6/fs/nfsd/nfs3xdr.c
5579--- linux-3.4.57/fs/nfsd/nfs3xdr.c 2012-05-21 16:07:26.000000000 +0000 5387--- linux-3.10.17/fs/nfsd/nfs3xdr.c 2013-05-31 13:45:24.000000000 +0000
5580+++ linux-3.4.57-vs2.3.3.9/fs/nfsd/nfs3xdr.c 2012-05-21 16:15:05.000000000 +0000 5388+++ linux-3.10.17-vs2.3.6.6/fs/nfsd/nfs3xdr.c 2013-08-22 20:29:59.000000000 +0000
5581@@ -7,6 +7,7 @@ 5389@@ -8,6 +8,7 @@
5582 */
5583 5390
5584 #include <linux/namei.h> 5391 #include <linux/namei.h>
5392 #include <linux/sunrpc/svc_xprt.h>
5585+#include <linux/vs_tag.h> 5393+#include <linux/vs_tag.h>
5586 #include "xdr3.h" 5394 #include "xdr3.h"
5587 #include "auth.h" 5395 #include "auth.h"
5588 5396 #include "netns.h"
5589@@ -95,6 +96,8 @@ static __be32 * 5397@@ -98,6 +99,8 @@ static __be32 *
5590 decode_sattr3(__be32 *p, struct iattr *iap) 5398 decode_sattr3(__be32 *p, struct iattr *iap)
5591 { 5399 {
5592 u32 tmp; 5400 u32 tmp;
5593+ uid_t uid = 0; 5401+ kuid_t kuid = GLOBAL_ROOT_UID;
5594+ gid_t gid = 0; 5402+ kgid_t kgid = GLOBAL_ROOT_GID;
5595 5403
5596 iap->ia_valid = 0; 5404 iap->ia_valid = 0;
5597 5405
5598@@ -104,12 +107,15 @@ decode_sattr3(__be32 *p, struct iattr *i 5406@@ -106,15 +109,18 @@ decode_sattr3(__be32 *p, struct iattr *i
5407 iap->ia_mode = ntohl(*p++);
5599 } 5408 }
5600 if (*p++) { 5409 if (*p++) {
5601 iap->ia_valid |= ATTR_UID; 5410- iap->ia_uid = make_kuid(&init_user_ns, ntohl(*p++));
5602- iap->ia_uid = ntohl(*p++); 5411+ kuid = make_kuid(&init_user_ns, ntohl(*p++));
5603+ uid = ntohl(*p++); 5412 if (uid_valid(iap->ia_uid))
5413 iap->ia_valid |= ATTR_UID;
5604 } 5414 }
5605 if (*p++) { 5415 if (*p++) {
5606 iap->ia_valid |= ATTR_GID; 5416- iap->ia_gid = make_kgid(&init_user_ns, ntohl(*p++));
5607- iap->ia_gid = ntohl(*p++); 5417+ kgid = make_kgid(&init_user_ns, ntohl(*p++));
5608+ gid = ntohl(*p++); 5418 if (gid_valid(iap->ia_gid))
5419 iap->ia_valid |= ATTR_GID;
5609 } 5420 }
5610+ iap->ia_uid = INOTAG_UID(DX_TAG_NFSD, uid, gid); 5421+ iap->ia_uid = INOTAG_KUID(DX_TAG_NFSD, kuid, kgid);
5611+ iap->ia_gid = INOTAG_GID(DX_TAG_NFSD, uid, gid); 5422+ iap->ia_gid = INOTAG_KGID(DX_TAG_NFSD, kuid, kgid);
5612+ iap->ia_tag = INOTAG_TAG(DX_TAG_NFSD, uid, gid, 0); 5423+ iap->ia_tag = INOTAG_KTAG(DX_TAG_NFSD, kuid, kgid, GLOBAL_ROOT_TAG);
5613 if (*p++) { 5424 if (*p++) {
5614 u64 newsize; 5425 u64 newsize;
5615 5426
5616@@ -165,8 +171,12 @@ encode_fattr3(struct svc_rqst *rqstp, __ 5427@@ -170,8 +176,12 @@ encode_fattr3(struct svc_rqst *rqstp, __
5617 *p++ = htonl(nfs3_ftypes[(stat->mode & S_IFMT) >> 12]); 5428 *p++ = htonl(nfs3_ftypes[(stat->mode & S_IFMT) >> 12]);
5618 *p++ = htonl((u32) stat->mode); 5429 *p++ = htonl((u32) stat->mode);
5619 *p++ = htonl((u32) stat->nlink); 5430 *p++ = htonl((u32) stat->nlink);
5620- *p++ = htonl((u32) nfsd_ruid(rqstp, stat->uid)); 5431- *p++ = htonl((u32) from_kuid(&init_user_ns, stat->uid));
5621- *p++ = htonl((u32) nfsd_rgid(rqstp, stat->gid)); 5432- *p++ = htonl((u32) from_kgid(&init_user_ns, stat->gid));
5622+ *p++ = htonl((u32) nfsd_ruid(rqstp, 5433+ *p++ = htonl((u32) from_kuid(&init_user_ns,
5623+ TAGINO_UID(0 /* FIXME: DX_TAG(dentry->d_inode) */, 5434+ TAGINO_KUID(0 /* FIXME: DX_TAG(dentry->d_inode) */,
5624+ stat->uid, stat->tag))); 5435+ stat->uid, stat->tag)));
5625+ *p++ = htonl((u32) nfsd_rgid(rqstp, 5436+ *p++ = htonl((u32) from_kgid(&init_user_ns,
5626+ TAGINO_GID(0 /* FIXME: DX_TAG(dentry->d_inode) */, 5437+ TAGINO_KGID(0 /* FIXME: DX_TAG(dentry->d_inode) */,
5627+ stat->gid, stat->tag))); 5438+ stat->gid, stat->tag)));
5628 if (S_ISLNK(stat->mode) && stat->size > NFS3_MAXPATHLEN) { 5439 if (S_ISLNK(stat->mode) && stat->size > NFS3_MAXPATHLEN) {
5629 p = xdr_encode_hyper(p, (u64) NFS3_MAXPATHLEN); 5440 p = xdr_encode_hyper(p, (u64) NFS3_MAXPATHLEN);
5630 } else { 5441 } else {
5631diff -NurpP --minimal linux-3.4.57/fs/nfsd/nfs4xdr.c linux-3.4.57-vs2.3.3.9/fs/nfsd/nfs4xdr.c 5442diff -NurpP --minimal linux-3.10.17/fs/nfsd/nfs4xdr.c linux-3.10.17-vs2.3.6.6/fs/nfsd/nfs4xdr.c
5632--- linux-3.4.57/fs/nfsd/nfs4xdr.c 2013-08-13 14:13:34.000000000 +0000 5443--- linux-3.10.17/fs/nfsd/nfs4xdr.c 2013-10-25 15:17:43.000000000 +0000
5633+++ linux-3.4.57-vs2.3.3.9/fs/nfsd/nfs4xdr.c 2013-07-14 13:38:35.000000000 +0000 5444+++ linux-3.10.17-vs2.3.6.6/fs/nfsd/nfs4xdr.c 2013-08-22 20:29:59.000000000 +0000
5634@@ -46,6 +46,7 @@ 5445@@ -46,6 +46,7 @@
5635 #include <linux/utsname.h> 5446 #include <linux/utsname.h>
5636 #include <linux/pagemap.h> 5447 #include <linux/pagemap.h>
@@ -5639,13 +5450,13 @@ diff -NurpP --minimal linux-3.4.57/fs/nfsd/nfs4xdr.c linux-3.4.57-vs2.3.3.9/fs/n
5639 5450
5640 #include "idmap.h" 5451 #include "idmap.h"
5641 #include "acl.h" 5452 #include "acl.h"
5642@@ -2319,14 +2320,18 @@ out_acl: 5453@@ -2320,14 +2321,18 @@ out_acl:
5643 WRITE32(stat.nlink); 5454 WRITE32(stat.nlink);
5644 } 5455 }
5645 if (bmval1 & FATTR4_WORD1_OWNER) { 5456 if (bmval1 & FATTR4_WORD1_OWNER) {
5646- status = nfsd4_encode_user(rqstp, stat.uid, &p, &buflen); 5457- status = nfsd4_encode_user(rqstp, stat.uid, &p, &buflen);
5647+ status = nfsd4_encode_user(rqstp, 5458+ status = nfsd4_encode_user(rqstp,
5648+ TAGINO_UID(DX_TAG(dentry->d_inode), 5459+ TAGINO_KUID(DX_TAG(dentry->d_inode),
5649+ stat.uid, stat.tag), &p, &buflen); 5460+ stat.uid, stat.tag), &p, &buflen);
5650 if (status == nfserr_resource) 5461 if (status == nfserr_resource)
5651 goto out_resource; 5462 goto out_resource;
@@ -5655,84 +5466,87 @@ diff -NurpP --minimal linux-3.4.57/fs/nfsd/nfs4xdr.c linux-3.4.57-vs2.3.3.9/fs/n
5655 if (bmval1 & FATTR4_WORD1_OWNER_GROUP) { 5466 if (bmval1 & FATTR4_WORD1_OWNER_GROUP) {
5656- status = nfsd4_encode_group(rqstp, stat.gid, &p, &buflen); 5467- status = nfsd4_encode_group(rqstp, stat.gid, &p, &buflen);
5657+ status = nfsd4_encode_group(rqstp, 5468+ status = nfsd4_encode_group(rqstp,
5658+ TAGINO_GID(DX_TAG(dentry->d_inode), 5469+ TAGINO_KGID(DX_TAG(dentry->d_inode),
5659+ stat.gid, stat.tag), &p, &buflen); 5470+ stat.gid, stat.tag), &p, &buflen);
5660 if (status == nfserr_resource) 5471 if (status == nfserr_resource)
5661 goto out_resource; 5472 goto out_resource;
5662 if (status) 5473 if (status)
5663diff -NurpP --minimal linux-3.4.57/fs/nfsd/nfsxdr.c linux-3.4.57-vs2.3.3.9/fs/nfsd/nfsxdr.c 5474diff -NurpP --minimal linux-3.10.17/fs/nfsd/nfsxdr.c linux-3.10.17-vs2.3.6.6/fs/nfsd/nfsxdr.c
5664--- linux-3.4.57/fs/nfsd/nfsxdr.c 2011-05-22 14:17:53.000000000 +0000 5475--- linux-3.10.17/fs/nfsd/nfsxdr.c 2013-05-31 13:45:24.000000000 +0000
5665+++ linux-3.4.57-vs2.3.3.9/fs/nfsd/nfsxdr.c 2012-05-21 16:15:05.000000000 +0000 5476+++ linux-3.10.17-vs2.3.6.6/fs/nfsd/nfsxdr.c 2013-08-22 20:29:59.000000000 +0000
5666@@ -6,6 +6,7 @@ 5477@@ -7,6 +7,7 @@
5667 5478 #include "vfs.h"
5668 #include "xdr.h" 5479 #include "xdr.h"
5669 #include "auth.h" 5480 #include "auth.h"
5670+#include <linux/vs_tag.h> 5481+#include <linux/vs_tag.h>
5671 5482
5672 #define NFSDDBG_FACILITY NFSDDBG_XDR 5483 #define NFSDDBG_FACILITY NFSDDBG_XDR
5673 5484
5674@@ -88,6 +89,8 @@ static __be32 * 5485@@ -89,6 +90,8 @@ static __be32 *
5675 decode_sattr(__be32 *p, struct iattr *iap) 5486 decode_sattr(__be32 *p, struct iattr *iap)
5676 { 5487 {
5677 u32 tmp, tmp1; 5488 u32 tmp, tmp1;
5678+ uid_t uid = 0; 5489+ kuid_t kuid = GLOBAL_ROOT_UID;
5679+ gid_t gid = 0; 5490+ kgid_t kgid = GLOBAL_ROOT_GID;
5680 5491
5681 iap->ia_valid = 0; 5492 iap->ia_valid = 0;
5682 5493
5683@@ -101,12 +104,15 @@ decode_sattr(__be32 *p, struct iattr *ia 5494@@ -101,15 +104,18 @@ decode_sattr(__be32 *p, struct iattr *ia
5495 iap->ia_mode = tmp;
5684 } 5496 }
5685 if ((tmp = ntohl(*p++)) != (u32)-1) { 5497 if ((tmp = ntohl(*p++)) != (u32)-1) {
5686 iap->ia_valid |= ATTR_UID; 5498- iap->ia_uid = make_kuid(&init_user_ns, tmp);
5687- iap->ia_uid = tmp; 5499+ kuid = make_kuid(&init_user_ns, tmp);
5688+ uid = tmp; 5500 if (uid_valid(iap->ia_uid))
5501 iap->ia_valid |= ATTR_UID;
5689 } 5502 }
5690 if ((tmp = ntohl(*p++)) != (u32)-1) { 5503 if ((tmp = ntohl(*p++)) != (u32)-1) {
5691 iap->ia_valid |= ATTR_GID; 5504- iap->ia_gid = make_kgid(&init_user_ns, tmp);
5692- iap->ia_gid = tmp; 5505+ kgid = make_kgid(&init_user_ns, tmp);
5693+ gid = tmp; 5506 if (gid_valid(iap->ia_gid))
5507 iap->ia_valid |= ATTR_GID;
5694 } 5508 }
5695+ iap->ia_uid = INOTAG_UID(DX_TAG_NFSD, uid, gid); 5509+ iap->ia_uid = INOTAG_KUID(DX_TAG_NFSD, kuid, kgid);
5696+ iap->ia_gid = INOTAG_GID(DX_TAG_NFSD, uid, gid); 5510+ iap->ia_gid = INOTAG_KGID(DX_TAG_NFSD, kuid, kgid);
5697+ iap->ia_tag = INOTAG_TAG(DX_TAG_NFSD, uid, gid, 0); 5511+ iap->ia_tag = INOTAG_KTAG(DX_TAG_NFSD, kuid, kgid, GLOBAL_ROOT_TAG);
5698 if ((tmp = ntohl(*p++)) != (u32)-1) { 5512 if ((tmp = ntohl(*p++)) != (u32)-1) {
5699 iap->ia_valid |= ATTR_SIZE; 5513 iap->ia_valid |= ATTR_SIZE;
5700 iap->ia_size = tmp; 5514 iap->ia_size = tmp;
5701@@ -151,8 +157,10 @@ encode_fattr(struct svc_rqst *rqstp, __b 5515@@ -154,8 +160,10 @@ encode_fattr(struct svc_rqst *rqstp, __b
5702 *p++ = htonl(nfs_ftypes[type >> 12]); 5516 *p++ = htonl(nfs_ftypes[type >> 12]);
5703 *p++ = htonl((u32) stat->mode); 5517 *p++ = htonl((u32) stat->mode);
5704 *p++ = htonl((u32) stat->nlink); 5518 *p++ = htonl((u32) stat->nlink);
5705- *p++ = htonl((u32) nfsd_ruid(rqstp, stat->uid)); 5519- *p++ = htonl((u32) from_kuid(&init_user_ns, stat->uid));
5706- *p++ = htonl((u32) nfsd_rgid(rqstp, stat->gid)); 5520- *p++ = htonl((u32) from_kgid(&init_user_ns, stat->gid));
5707+ *p++ = htonl((u32) nfsd_ruid(rqstp, 5521+ *p++ = htonl((u32) from_kuid(&init_user_ns,
5708+ TAGINO_UID(DX_TAG(dentry->d_inode), stat->uid, stat->tag))); 5522+ TAGINO_KUID(DX_TAG(dentry->d_inode), stat->uid, stat->tag)));
5709+ *p++ = htonl((u32) nfsd_rgid(rqstp, 5523+ *p++ = htonl((u32) from_kgid(&init_user_ns,
5710+ TAGINO_GID(DX_TAG(dentry->d_inode), stat->gid, stat->tag))); 5524+ TAGINO_KGID(DX_TAG(dentry->d_inode), stat->gid, stat->tag)));
5711 5525
5712 if (S_ISLNK(type) && stat->size > NFS_MAXPATHLEN) { 5526 if (S_ISLNK(type) && stat->size > NFS_MAXPATHLEN) {
5713 *p++ = htonl(NFS_MAXPATHLEN); 5527 *p++ = htonl(NFS_MAXPATHLEN);
5714diff -NurpP --minimal linux-3.4.57/fs/ocfs2/dlmglue.c linux-3.4.57-vs2.3.3.9/fs/ocfs2/dlmglue.c 5528diff -NurpP --minimal linux-3.10.17/fs/ocfs2/dlmglue.c linux-3.10.17-vs2.3.6.6/fs/ocfs2/dlmglue.c
5715--- linux-3.4.57/fs/ocfs2/dlmglue.c 2013-08-13 14:13:34.000000000 +0000 5529--- linux-3.10.17/fs/ocfs2/dlmglue.c 2013-07-14 17:01:29.000000000 +0000
5716+++ linux-3.4.57-vs2.3.3.9/fs/ocfs2/dlmglue.c 2013-03-02 15:26:44.000000000 +0000 5530+++ linux-3.10.17-vs2.3.6.6/fs/ocfs2/dlmglue.c 2013-08-22 20:29:59.000000000 +0000
5717@@ -2047,6 +2047,7 @@ static void __ocfs2_stuff_meta_lvb(struc 5531@@ -2047,6 +2047,7 @@ static void __ocfs2_stuff_meta_lvb(struc
5718 lvb->lvb_iclusters = cpu_to_be32(oi->ip_clusters); 5532 lvb->lvb_iclusters = cpu_to_be32(oi->ip_clusters);
5719 lvb->lvb_iuid = cpu_to_be32(inode->i_uid); 5533 lvb->lvb_iuid = cpu_to_be32(i_uid_read(inode));
5720 lvb->lvb_igid = cpu_to_be32(inode->i_gid); 5534 lvb->lvb_igid = cpu_to_be32(i_gid_read(inode));
5721+ lvb->lvb_itag = cpu_to_be16(inode->i_tag); 5535+ lvb->lvb_itag = cpu_to_be16(i_tag_read(inode));
5722 lvb->lvb_imode = cpu_to_be16(inode->i_mode); 5536 lvb->lvb_imode = cpu_to_be16(inode->i_mode);
5723 lvb->lvb_inlink = cpu_to_be16(inode->i_nlink); 5537 lvb->lvb_inlink = cpu_to_be16(inode->i_nlink);
5724 lvb->lvb_iatime_packed = 5538 lvb->lvb_iatime_packed =
5725@@ -2097,6 +2098,7 @@ static void ocfs2_refresh_inode_from_lvb 5539@@ -2097,6 +2098,7 @@ static void ocfs2_refresh_inode_from_lvb
5726 5540
5727 inode->i_uid = be32_to_cpu(lvb->lvb_iuid); 5541 i_uid_write(inode, be32_to_cpu(lvb->lvb_iuid));
5728 inode->i_gid = be32_to_cpu(lvb->lvb_igid); 5542 i_gid_write(inode, be32_to_cpu(lvb->lvb_igid));
5729+ inode->i_tag = be16_to_cpu(lvb->lvb_itag); 5543+ i_tag_write(inode, be16_to_cpu(lvb->lvb_itag));
5730 inode->i_mode = be16_to_cpu(lvb->lvb_imode); 5544 inode->i_mode = be16_to_cpu(lvb->lvb_imode);
5731 set_nlink(inode, be16_to_cpu(lvb->lvb_inlink)); 5545 set_nlink(inode, be16_to_cpu(lvb->lvb_inlink));
5732 ocfs2_unpack_timespec(&inode->i_atime, 5546 ocfs2_unpack_timespec(&inode->i_atime,
5733diff -NurpP --minimal linux-3.4.57/fs/ocfs2/dlmglue.h linux-3.4.57-vs2.3.3.9/fs/ocfs2/dlmglue.h 5547diff -NurpP --minimal linux-3.10.17/fs/ocfs2/dlmglue.h linux-3.10.17-vs2.3.6.6/fs/ocfs2/dlmglue.h
5734--- linux-3.4.57/fs/ocfs2/dlmglue.h 2010-10-21 11:07:50.000000000 +0000 5548--- linux-3.10.17/fs/ocfs2/dlmglue.h 2012-12-11 03:30:57.000000000 +0000
5735+++ linux-3.4.57-vs2.3.3.9/fs/ocfs2/dlmglue.h 2012-05-21 16:15:05.000000000 +0000 5549+++ linux-3.10.17-vs2.3.6.6/fs/ocfs2/dlmglue.h 2013-08-22 20:29:59.000000000 +0000
5736@@ -46,7 +46,8 @@ struct ocfs2_meta_lvb { 5550@@ -46,7 +46,8 @@ struct ocfs2_meta_lvb {
5737 __be16 lvb_inlink; 5551 __be16 lvb_inlink;
5738 __be32 lvb_iattr; 5552 __be32 lvb_iattr;
@@ -5743,10 +5557,10 @@ diff -NurpP --minimal linux-3.4.57/fs/ocfs2/dlmglue.h linux-3.4.57-vs2.3.3.9/fs/
5743 }; 5557 };
5744 5558
5745 #define OCFS2_QINFO_LVB_VERSION 1 5559 #define OCFS2_QINFO_LVB_VERSION 1
5746diff -NurpP --minimal linux-3.4.57/fs/ocfs2/file.c linux-3.4.57-vs2.3.3.9/fs/ocfs2/file.c 5560diff -NurpP --minimal linux-3.10.17/fs/ocfs2/file.c linux-3.10.17-vs2.3.6.6/fs/ocfs2/file.c
5747--- linux-3.4.57/fs/ocfs2/file.c 2013-08-13 14:13:34.000000000 +0000 5561--- linux-3.10.17/fs/ocfs2/file.c 2013-07-14 17:01:29.000000000 +0000
5748+++ linux-3.4.57-vs2.3.3.9/fs/ocfs2/file.c 2012-07-17 22:29:43.000000000 +0000 5562+++ linux-3.10.17-vs2.3.6.6/fs/ocfs2/file.c 2013-08-22 20:29:59.000000000 +0000
5749@@ -1123,7 +1123,7 @@ int ocfs2_setattr(struct dentry *dentry, 5563@@ -1124,7 +1124,7 @@ int ocfs2_setattr(struct dentry *dentry,
5750 attr->ia_valid &= ~ATTR_SIZE; 5564 attr->ia_valid &= ~ATTR_SIZE;
5751 5565
5752 #define OCFS2_VALID_ATTRS (ATTR_ATIME | ATTR_MTIME | ATTR_CTIME | ATTR_SIZE \ 5566 #define OCFS2_VALID_ATTRS (ATTR_ATIME | ATTR_MTIME | ATTR_CTIME | ATTR_SIZE \
@@ -5755,9 +5569,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ocfs2/file.c linux-3.4.57-vs2.3.3.9/fs/ocf
5755 if (!(attr->ia_valid & OCFS2_VALID_ATTRS)) 5569 if (!(attr->ia_valid & OCFS2_VALID_ATTRS))
5756 return 0; 5570 return 0;
5757 5571
5758diff -NurpP --minimal linux-3.4.57/fs/ocfs2/inode.c linux-3.4.57-vs2.3.3.9/fs/ocfs2/inode.c 5572diff -NurpP --minimal linux-3.10.17/fs/ocfs2/inode.c linux-3.10.17-vs2.3.6.6/fs/ocfs2/inode.c
5759--- linux-3.4.57/fs/ocfs2/inode.c 2012-01-09 15:14:55.000000000 +0000 5573--- linux-3.10.17/fs/ocfs2/inode.c 2013-05-31 13:45:24.000000000 +0000
5760+++ linux-3.4.57-vs2.3.3.9/fs/ocfs2/inode.c 2012-05-21 16:15:05.000000000 +0000 5574+++ linux-3.10.17-vs2.3.6.6/fs/ocfs2/inode.c 2013-08-22 20:29:59.000000000 +0000
5761@@ -28,6 +28,7 @@ 5575@@ -28,6 +28,7 @@
5762 #include <linux/highmem.h> 5576 #include <linux/highmem.h>
5763 #include <linux/pagemap.h> 5577 #include <linux/pagemap.h>
@@ -5843,21 +5657,21 @@ diff -NurpP --minimal linux-3.4.57/fs/ocfs2/inode.c linux-3.4.57-vs2.3.3.9/fs/oc
5843 inode->i_generation = le32_to_cpu(fe->i_generation); 5657 inode->i_generation = le32_to_cpu(fe->i_generation);
5844 inode->i_rdev = huge_decode_dev(le64_to_cpu(fe->id1.dev1.i_rdev)); 5658 inode->i_rdev = huge_decode_dev(le64_to_cpu(fe->id1.dev1.i_rdev));
5845 inode->i_mode = le16_to_cpu(fe->i_mode); 5659 inode->i_mode = le16_to_cpu(fe->i_mode);
5846- inode->i_uid = le32_to_cpu(fe->i_uid); 5660- i_uid_write(inode, le32_to_cpu(fe->i_uid));
5847- inode->i_gid = le32_to_cpu(fe->i_gid); 5661- i_gid_write(inode, le32_to_cpu(fe->i_gid));
5848+ uid = le32_to_cpu(fe->i_uid); 5662+ uid = le32_to_cpu(fe->i_uid);
5849+ gid = le32_to_cpu(fe->i_gid); 5663+ gid = le32_to_cpu(fe->i_gid);
5850+ inode->i_uid = INOTAG_UID(DX_TAG(inode), uid, gid); 5664+ i_uid_write(inode, INOTAG_UID(DX_TAG(inode), uid, gid));
5851+ inode->i_gid = INOTAG_GID(DX_TAG(inode), uid, gid); 5665+ i_gid_write(inode, INOTAG_GID(DX_TAG(inode), uid, gid));
5852+ inode->i_tag = INOTAG_TAG(DX_TAG(inode), uid, gid, 5666+ i_tag_write(inode, INOTAG_TAG(DX_TAG(inode), uid, gid,
5853+ /* le16_to_cpu(raw_inode->i_raw_tag)i */ 0); 5667+ /* le16_to_cpu(raw_inode->i_raw_tag) */ 0));
5854 5668
5855 /* Fast symlinks will have i_size but no allocated clusters. */ 5669 /* Fast symlinks will have i_size but no allocated clusters. */
5856 if (S_ISLNK(inode->i_mode) && !fe->i_clusters) 5670 if (S_ISLNK(inode->i_mode) && !fe->i_clusters) {
5857diff -NurpP --minimal linux-3.4.57/fs/ocfs2/inode.h linux-3.4.57-vs2.3.3.9/fs/ocfs2/inode.h 5671diff -NurpP --minimal linux-3.10.17/fs/ocfs2/inode.h linux-3.10.17-vs2.3.6.6/fs/ocfs2/inode.h
5858--- linux-3.4.57/fs/ocfs2/inode.h 2012-01-09 15:14:55.000000000 +0000 5672--- linux-3.10.17/fs/ocfs2/inode.h 2013-07-14 17:01:29.000000000 +0000
5859+++ linux-3.4.57-vs2.3.3.9/fs/ocfs2/inode.h 2012-05-21 16:15:05.000000000 +0000 5673+++ linux-3.10.17-vs2.3.6.6/fs/ocfs2/inode.h 2013-08-22 20:29:59.000000000 +0000
5860@@ -154,6 +154,7 @@ struct buffer_head *ocfs2_bread(struct i 5674@@ -152,6 +152,7 @@ struct buffer_head *ocfs2_bread(struct i
5861 5675
5862 void ocfs2_set_inode_flags(struct inode *inode); 5676 void ocfs2_set_inode_flags(struct inode *inode);
5863 void ocfs2_get_inode_flags(struct ocfs2_inode_info *oi); 5677 void ocfs2_get_inode_flags(struct ocfs2_inode_info *oi);
@@ -5865,9 +5679,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ocfs2/inode.h linux-3.4.57-vs2.3.3.9/fs/oc
5865 5679
5866 static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode) 5680 static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode)
5867 { 5681 {
5868diff -NurpP --minimal linux-3.4.57/fs/ocfs2/ioctl.c linux-3.4.57-vs2.3.3.9/fs/ocfs2/ioctl.c 5682diff -NurpP --minimal linux-3.10.17/fs/ocfs2/ioctl.c linux-3.10.17-vs2.3.6.6/fs/ocfs2/ioctl.c
5869--- linux-3.4.57/fs/ocfs2/ioctl.c 2012-05-21 16:07:26.000000000 +0000 5683--- linux-3.10.17/fs/ocfs2/ioctl.c 2013-07-14 17:01:29.000000000 +0000
5870+++ linux-3.4.57-vs2.3.3.9/fs/ocfs2/ioctl.c 2012-05-21 16:15:05.000000000 +0000 5684+++ linux-3.10.17-vs2.3.6.6/fs/ocfs2/ioctl.c 2013-08-22 20:29:59.000000000 +0000
5871@@ -76,7 +76,41 @@ static int ocfs2_get_inode_attr(struct i 5685@@ -76,7 +76,41 @@ static int ocfs2_get_inode_attr(struct i
5872 return status; 5686 return status;
5873 } 5687 }
@@ -5911,9 +5725,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ocfs2/ioctl.c linux-3.4.57-vs2.3.3.9/fs/oc
5911 unsigned mask) 5725 unsigned mask)
5912 { 5726 {
5913 struct ocfs2_inode_info *ocfs2_inode = OCFS2_I(inode); 5727 struct ocfs2_inode_info *ocfs2_inode = OCFS2_I(inode);
5914@@ -101,6 +135,11 @@ static int ocfs2_set_inode_attr(struct i 5728@@ -116,6 +150,11 @@ static int ocfs2_set_inode_attr(struct i
5915 if (!S_ISDIR(inode->i_mode)) 5729 goto bail_unlock;
5916 flags &= ~OCFS2_DIRSYNC_FL; 5730 }
5917 5731
5918+ if (IS_BARRIER(inode)) { 5732+ if (IS_BARRIER(inode)) {
5919+ vxwprintk_task(1, "messing with the barrier."); 5733+ vxwprintk_task(1, "messing with the barrier.");
@@ -5923,17 +5737,17 @@ diff -NurpP --minimal linux-3.4.57/fs/ocfs2/ioctl.c linux-3.4.57-vs2.3.3.9/fs/oc
5923 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS); 5737 handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
5924 if (IS_ERR(handle)) { 5738 if (IS_ERR(handle)) {
5925 status = PTR_ERR(handle); 5739 status = PTR_ERR(handle);
5926@@ -879,6 +918,7 @@ bail: 5740@@ -881,6 +920,7 @@ bail:
5927 return status; 5741 return status;
5928 } 5742 }
5929 5743
5930+ 5744+
5931 long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) 5745 long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
5932 { 5746 {
5933 struct inode *inode = filp->f_path.dentry->d_inode; 5747 struct inode *inode = file_inode(filp);
5934diff -NurpP --minimal linux-3.4.57/fs/ocfs2/namei.c linux-3.4.57-vs2.3.3.9/fs/ocfs2/namei.c 5748diff -NurpP --minimal linux-3.10.17/fs/ocfs2/namei.c linux-3.10.17-vs2.3.6.6/fs/ocfs2/namei.c
5935--- linux-3.4.57/fs/ocfs2/namei.c 2012-03-19 18:47:26.000000000 +0000 5749--- linux-3.10.17/fs/ocfs2/namei.c 2013-07-14 17:01:29.000000000 +0000
5936+++ linux-3.4.57-vs2.3.3.9/fs/ocfs2/namei.c 2012-05-21 16:15:05.000000000 +0000 5750+++ linux-3.10.17-vs2.3.6.6/fs/ocfs2/namei.c 2013-08-22 20:29:59.000000000 +0000
5937@@ -41,6 +41,7 @@ 5751@@ -41,6 +41,7 @@
5938 #include <linux/slab.h> 5752 #include <linux/slab.h>
5939 #include <linux/highmem.h> 5753 #include <linux/highmem.h>
@@ -5946,27 +5760,29 @@ diff -NurpP --minimal linux-3.4.57/fs/ocfs2/namei.c linux-3.4.57-vs2.3.3.9/fs/oc
5946 struct ocfs2_dinode *fe = NULL; 5760 struct ocfs2_dinode *fe = NULL;
5947 struct ocfs2_extent_list *fel; 5761 struct ocfs2_extent_list *fel;
5948 u16 feat; 5762 u16 feat;
5949+ tag_t tag; 5763+ ktag_t ktag;
5950 5764
5951 *new_fe_bh = NULL; 5765 *new_fe_bh = NULL;
5952 5766
5953@@ -512,8 +514,11 @@ static int __ocfs2_mknod_locked(struct i 5767@@ -512,8 +514,13 @@ static int __ocfs2_mknod_locked(struct i
5954 fe->i_suballoc_loc = cpu_to_le64(suballoc_loc); 5768 fe->i_suballoc_loc = cpu_to_le64(suballoc_loc);
5955 fe->i_suballoc_bit = cpu_to_le16(suballoc_bit); 5769 fe->i_suballoc_bit = cpu_to_le16(suballoc_bit);
5956 fe->i_suballoc_slot = cpu_to_le16(inode_ac->ac_alloc_slot); 5770 fe->i_suballoc_slot = cpu_to_le16(inode_ac->ac_alloc_slot);
5957- fe->i_uid = cpu_to_le32(inode->i_uid); 5771- fe->i_uid = cpu_to_le32(i_uid_read(inode));
5958- fe->i_gid = cpu_to_le32(inode->i_gid); 5772- fe->i_gid = cpu_to_le32(i_gid_read(inode));
5959+ 5773+
5960+ tag = dx_current_fstag(osb->sb); 5774+ ktag = make_ktag(&init_user_ns, dx_current_fstag(osb->sb));
5961+ fe->i_uid = cpu_to_le32(TAGINO_UID(DX_TAG(inode), inode->i_uid, tag)); 5775+ fe->i_uid = cpu_to_le32(from_kuid(&init_user_ns,
5962+ fe->i_gid = cpu_to_le32(TAGINO_GID(DX_TAG(inode), inode->i_gid, tag)); 5776+ TAGINO_KUID(DX_TAG(inode), inode->i_uid, ktag)));
5963+ inode->i_tag = tag; 5777+ fe->i_gid = cpu_to_le32(from_kgid(&init_user_ns,
5778+ TAGINO_KGID(DX_TAG(inode), inode->i_gid, ktag)));
5779+ inode->i_tag = ktag; /* is this correct? */
5964 fe->i_mode = cpu_to_le16(inode->i_mode); 5780 fe->i_mode = cpu_to_le16(inode->i_mode);
5965 if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) 5781 if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
5966 fe->id1.dev1.i_rdev = cpu_to_le64(huge_encode_dev(dev)); 5782 fe->id1.dev1.i_rdev = cpu_to_le64(huge_encode_dev(dev));
5967diff -NurpP --minimal linux-3.4.57/fs/ocfs2/ocfs2.h linux-3.4.57-vs2.3.3.9/fs/ocfs2/ocfs2.h 5783diff -NurpP --minimal linux-3.10.17/fs/ocfs2/ocfs2.h linux-3.10.17-vs2.3.6.6/fs/ocfs2/ocfs2.h
5968--- linux-3.4.57/fs/ocfs2/ocfs2.h 2012-01-09 15:14:55.000000000 +0000 5784--- linux-3.10.17/fs/ocfs2/ocfs2.h 2012-12-11 03:30:57.000000000 +0000
5969+++ linux-3.4.57-vs2.3.3.9/fs/ocfs2/ocfs2.h 2012-05-21 16:15:05.000000000 +0000 5785+++ linux-3.10.17-vs2.3.6.6/fs/ocfs2/ocfs2.h 2013-08-22 20:29:59.000000000 +0000
5970@@ -272,6 +272,7 @@ enum ocfs2_mount_options 5786@@ -272,6 +272,7 @@ enum ocfs2_mount_options
5971 writes */ 5787 writes */
5972 OCFS2_MOUNT_HB_NONE = 1 << 13, /* No heartbeat */ 5788 OCFS2_MOUNT_HB_NONE = 1 << 13, /* No heartbeat */
@@ -5975,9 +5791,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ocfs2/ocfs2.h linux-3.4.57-vs2.3.3.9/fs/oc
5975 }; 5791 };
5976 5792
5977 #define OCFS2_OSB_SOFT_RO 0x0001 5793 #define OCFS2_OSB_SOFT_RO 0x0001
5978diff -NurpP --minimal linux-3.4.57/fs/ocfs2/ocfs2_fs.h linux-3.4.57-vs2.3.3.9/fs/ocfs2/ocfs2_fs.h 5794diff -NurpP --minimal linux-3.10.17/fs/ocfs2/ocfs2_fs.h linux-3.10.17-vs2.3.6.6/fs/ocfs2/ocfs2_fs.h
5979--- linux-3.4.57/fs/ocfs2/ocfs2_fs.h 2011-05-22 14:17:53.000000000 +0000 5795--- linux-3.10.17/fs/ocfs2/ocfs2_fs.h 2012-12-11 03:30:57.000000000 +0000
5980+++ linux-3.4.57-vs2.3.3.9/fs/ocfs2/ocfs2_fs.h 2012-05-21 16:15:05.000000000 +0000 5796+++ linux-3.10.17-vs2.3.6.6/fs/ocfs2/ocfs2_fs.h 2013-08-22 20:29:59.000000000 +0000
5981@@ -266,6 +266,11 @@ 5797@@ -266,6 +266,11 @@
5982 #define OCFS2_TOPDIR_FL FS_TOPDIR_FL /* Top of directory hierarchies*/ 5798 #define OCFS2_TOPDIR_FL FS_TOPDIR_FL /* Top of directory hierarchies*/
5983 #define OCFS2_RESERVED_FL FS_RESERVED_FL /* reserved for ext2 lib */ 5799 #define OCFS2_RESERVED_FL FS_RESERVED_FL /* reserved for ext2 lib */
@@ -5990,9 +5806,9 @@ diff -NurpP --minimal linux-3.4.57/fs/ocfs2/ocfs2_fs.h linux-3.4.57-vs2.3.3.9/fs
5990 #define OCFS2_FL_VISIBLE FS_FL_USER_VISIBLE /* User visible flags */ 5806 #define OCFS2_FL_VISIBLE FS_FL_USER_VISIBLE /* User visible flags */
5991 #define OCFS2_FL_MODIFIABLE FS_FL_USER_MODIFIABLE /* User modifiable flags */ 5807 #define OCFS2_FL_MODIFIABLE FS_FL_USER_MODIFIABLE /* User modifiable flags */
5992 5808
5993diff -NurpP --minimal linux-3.4.57/fs/ocfs2/super.c linux-3.4.57-vs2.3.3.9/fs/ocfs2/super.c 5809diff -NurpP --minimal linux-3.10.17/fs/ocfs2/super.c linux-3.10.17-vs2.3.6.6/fs/ocfs2/super.c
5994--- linux-3.4.57/fs/ocfs2/super.c 2012-05-21 16:07:26.000000000 +0000 5810--- linux-3.10.17/fs/ocfs2/super.c 2013-05-31 13:45:25.000000000 +0000
5995+++ linux-3.4.57-vs2.3.3.9/fs/ocfs2/super.c 2012-05-21 16:15:05.000000000 +0000 5811+++ linux-3.10.17-vs2.3.6.6/fs/ocfs2/super.c 2013-08-22 20:29:59.000000000 +0000
5996@@ -185,6 +185,7 @@ enum { 5812@@ -185,6 +185,7 @@ enum {
5997 Opt_coherency_full, 5813 Opt_coherency_full,
5998 Opt_resv_level, 5814 Opt_resv_level,
@@ -6035,7 +5851,7 @@ diff -NurpP --minimal linux-3.4.57/fs/ocfs2/super.c linux-3.4.57-vs2.3.3.9/fs/oc
6035 if (ocfs2_mount_local(osb)) 5851 if (ocfs2_mount_local(osb))
6036 snprintf(nodestr, sizeof(nodestr), "local"); 5852 snprintf(nodestr, sizeof(nodestr), "local");
6037 else 5853 else
6038@@ -1503,6 +1517,20 @@ static int ocfs2_parse_options(struct su 5854@@ -1504,6 +1518,20 @@ static int ocfs2_parse_options(struct su
6039 option < OCFS2_MAX_RESV_LEVEL) 5855 option < OCFS2_MAX_RESV_LEVEL)
6040 mopt->dir_resv_level = option; 5856 mopt->dir_resv_level = option;
6041 break; 5857 break;
@@ -6056,13 +5872,13 @@ diff -NurpP --minimal linux-3.4.57/fs/ocfs2/super.c linux-3.4.57-vs2.3.3.9/fs/oc
6056 default: 5872 default:
6057 mlog(ML_ERROR, 5873 mlog(ML_ERROR,
6058 "Unrecognized mount option \"%s\" " 5874 "Unrecognized mount option \"%s\" "
6059diff -NurpP --minimal linux-3.4.57/fs/open.c linux-3.4.57-vs2.3.3.9/fs/open.c 5875diff -NurpP --minimal linux-3.10.17/fs/open.c linux-3.10.17-vs2.3.6.6/fs/open.c
6060--- linux-3.4.57/fs/open.c 2013-08-13 14:13:34.000000000 +0000 5876--- linux-3.10.17/fs/open.c 2013-07-14 17:01:29.000000000 +0000
6061+++ linux-3.4.57-vs2.3.3.9/fs/open.c 2012-09-16 18:49:11.000000000 +0000 5877+++ linux-3.10.17-vs2.3.6.6/fs/open.c 2013-08-22 20:29:59.000000000 +0000
6062@@ -30,6 +30,11 @@ 5878@@ -31,6 +31,11 @@
6063 #include <linux/fs_struct.h>
6064 #include <linux/ima.h> 5879 #include <linux/ima.h>
6065 #include <linux/dnotify.h> 5880 #include <linux/dnotify.h>
5881 #include <linux/compat.h>
6066+#include <linux/vs_base.h> 5882+#include <linux/vs_base.h>
6067+#include <linux/vs_limit.h> 5883+#include <linux/vs_limit.h>
6068+#include <linux/vs_tag.h> 5884+#include <linux/vs_tag.h>
@@ -6071,45 +5887,51 @@ diff -NurpP --minimal linux-3.4.57/fs/open.c linux-3.4.57-vs2.3.3.9/fs/open.c
6071 5887
6072 #include "internal.h" 5888 #include "internal.h"
6073 5889
6074@@ -74,6 +79,12 @@ static long do_sys_truncate(const char _ 5890@@ -67,6 +72,11 @@ long vfs_truncate(struct path *path, lof
6075 error = user_path(pathname, &path); 5891 struct inode *inode;
6076 if (error) 5892 long error;
6077 goto out; 5893
6078+
6079+#ifdef CONFIG_VSERVER_COWBL 5894+#ifdef CONFIG_VSERVER_COWBL
6080+ error = cow_check_and_break(&path); 5895+ error = cow_check_and_break(path);
6081+ if (error) 5896+ if (error)
6082+ goto dput_and_out; 5897+ goto out;
6083+#endif 5898+#endif
6084 inode = path.dentry->d_inode; 5899 inode = path->dentry->d_inode;
6085 5900
6086 /* For directories it's -EISDIR, for other non-regulars - -EINVAL */ 5901 /* For directories it's -EISDIR, for other non-regulars - -EINVAL */
6087@@ -489,6 +500,10 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons 5902@@ -504,6 +514,13 @@ SYSCALL_DEFINE3(fchmodat, int, dfd, cons
6088 5903 unsigned int lookup_flags = LOOKUP_FOLLOW;
6089 error = user_path_at(dfd, filename, LOOKUP_FOLLOW, &path); 5904 retry:
6090 if (!error) { 5905 error = user_path_at(dfd, filename, lookup_flags, &path);
6091+#ifdef CONFIG_VSERVER_COWBL 5906+#ifdef CONFIG_VSERVER_COWBL
5907+ if (!error) {
6092+ error = cow_check_and_break(&path); 5908+ error = cow_check_and_break(&path);
6093+ if (!error) 5909+ if (error)
5910+ path_put(&path);
5911+ }
6094+#endif 5912+#endif
5913 if (!error) {
6095 error = chmod_common(&path, mode); 5914 error = chmod_common(&path, mode);
6096 path_put(&path); 5915 path_put(&path);
6097 } 5916@@ -536,13 +553,15 @@ static int chown_common(struct path *pat
6098@@ -509,11 +524,11 @@ static int chown_common(struct path *pat 5917 if (!uid_valid(uid))
6099 newattrs.ia_valid = ATTR_CTIME; 5918 return -EINVAL;
6100 if (user != (uid_t) -1) {
6101 newattrs.ia_valid |= ATTR_UID; 5919 newattrs.ia_valid |= ATTR_UID;
6102- newattrs.ia_uid = user; 5920- newattrs.ia_uid = uid;
6103+ newattrs.ia_uid = dx_map_uid(user); 5921+ newattrs.ia_uid = make_kuid(&init_user_ns,
5922+ dx_map_uid(user));
6104 } 5923 }
6105 if (group != (gid_t) -1) { 5924 if (group != (gid_t) -1) {
5925 if (!gid_valid(gid))
5926 return -EINVAL;
6106 newattrs.ia_valid |= ATTR_GID; 5927 newattrs.ia_valid |= ATTR_GID;
6107- newattrs.ia_gid = group; 5928- newattrs.ia_gid = gid;
6108+ newattrs.ia_gid = dx_map_gid(group); 5929+ newattrs.ia_gid = make_kgid(&init_user_ns,
5930+ dx_map_gid(group));
6109 } 5931 }
6110 if (!S_ISDIR(inode->i_mode)) 5932 if (!S_ISDIR(inode->i_mode))
6111 newattrs.ia_valid |= 5933 newattrs.ia_valid |=
6112@@ -538,6 +553,10 @@ SYSCALL_DEFINE3(chown, const char __user 5934@@ -576,6 +595,18 @@ retry:
6113 error = mnt_want_write(path.mnt); 5935 error = mnt_want_write(path.mnt);
6114 if (error) 5936 if (error)
6115 goto out_release; 5937 goto out_release;
@@ -6117,24 +5939,10 @@ diff -NurpP --minimal linux-3.4.57/fs/open.c linux-3.4.57-vs2.3.3.9/fs/open.c
6117+ error = cow_check_and_break(&path); 5939+ error = cow_check_and_break(&path);
6118+ if (!error) 5940+ if (!error)
6119+#endif 5941+#endif
6120 error = chown_common(&path, user, group);
6121 mnt_drop_write(path.mnt);
6122 out_release:
6123@@ -565,6 +584,10 @@ SYSCALL_DEFINE5(fchownat, int, dfd, cons
6124 error = mnt_want_write(path.mnt);
6125 if (error)
6126 goto out_release;
6127+#ifdef CONFIG_VSERVER_COWBL 5942+#ifdef CONFIG_VSERVER_COWBL
6128+ error = cow_check_and_break(&path); 5943+ error = cow_check_and_break(&path);
6129+ if (!error) 5944+ if (!error)
6130+#endif 5945+#endif
6131 error = chown_common(&path, user, group);
6132 mnt_drop_write(path.mnt);
6133 out_release:
6134@@ -584,6 +607,10 @@ SYSCALL_DEFINE3(lchown, const char __use
6135 error = mnt_want_write(path.mnt);
6136 if (error)
6137 goto out_release;
6138+#ifdef CONFIG_VSERVER_COWBL 5946+#ifdef CONFIG_VSERVER_COWBL
6139+ error = cow_check_and_break(&path); 5947+ error = cow_check_and_break(&path);
6140+ if (!error) 5948+ if (!error)
@@ -6142,27 +5950,19 @@ diff -NurpP --minimal linux-3.4.57/fs/open.c linux-3.4.57-vs2.3.3.9/fs/open.c
6142 error = chown_common(&path, user, group); 5950 error = chown_common(&path, user, group);
6143 mnt_drop_write(path.mnt); 5951 mnt_drop_write(path.mnt);
6144 out_release: 5952 out_release:
6145@@ -839,6 +866,7 @@ static void __put_unused_fd(struct files 5953diff -NurpP --minimal linux-3.10.17/fs/proc/array.c linux-3.10.17-vs2.3.6.6/fs/proc/array.c
6146 __clear_open_fd(fd, fdt); 5954--- linux-3.10.17/fs/proc/array.c 2013-05-31 13:45:25.000000000 +0000
6147 if (fd < files->next_fd) 5955+++ linux-3.10.17-vs2.3.6.6/fs/proc/array.c 2013-08-22 20:29:59.000000000 +0000
6148 files->next_fd = fd; 5956@@ -82,6 +82,8 @@
6149+ vx_openfd_dec(fd);
6150 }
6151
6152 void put_unused_fd(unsigned int fd)
6153diff -NurpP --minimal linux-3.4.57/fs/proc/array.c linux-3.4.57-vs2.3.3.9/fs/proc/array.c
6154--- linux-3.4.57/fs/proc/array.c 2012-05-21 16:07:26.000000000 +0000
6155+++ linux-3.4.57-vs2.3.3.9/fs/proc/array.c 2012-05-21 16:15:05.000000000 +0000
6156@@ -81,6 +81,8 @@
6157 #include <linux/pid_namespace.h>
6158 #include <linux/ptrace.h> 5957 #include <linux/ptrace.h>
6159 #include <linux/tracehook.h> 5958 #include <linux/tracehook.h>
5959 #include <linux/user_namespace.h>
6160+#include <linux/vs_context.h> 5960+#include <linux/vs_context.h>
6161+#include <linux/vs_network.h> 5961+#include <linux/vs_network.h>
6162 5962
6163 #include <asm/pgtable.h> 5963 #include <asm/pgtable.h>
6164 #include <asm/processor.h> 5964 #include <asm/processor.h>
6165@@ -170,6 +172,9 @@ static inline void task_state(struct seq 5965@@ -173,6 +175,9 @@ static inline void task_state(struct seq
6166 rcu_read_lock(); 5966 rcu_read_lock();
6167 ppid = pid_alive(p) ? 5967 ppid = pid_alive(p) ?
6168 task_tgid_nr_ns(rcu_dereference(p->real_parent), ns) : 0; 5968 task_tgid_nr_ns(rcu_dereference(p->real_parent), ns) : 0;
@@ -6172,7 +5972,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/array.c linux-3.4.57-vs2.3.3.9/fs/pro
6172 tpid = 0; 5972 tpid = 0;
6173 if (pid_alive(p)) { 5973 if (pid_alive(p)) {
6174 struct task_struct *tracer = ptrace_parent(p); 5974 struct task_struct *tracer = ptrace_parent(p);
6175@@ -287,7 +292,7 @@ static inline void task_sig(struct seq_f 5975@@ -297,7 +302,7 @@ static inline void task_sig(struct seq_f
6176 } 5976 }
6177 5977
6178 static void render_cap_t(struct seq_file *m, const char *header, 5978 static void render_cap_t(struct seq_file *m, const char *header,
@@ -6181,9 +5981,9 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/array.c linux-3.4.57-vs2.3.3.9/fs/pro
6181 { 5981 {
6182 unsigned __capi; 5982 unsigned __capi;
6183 5983
6184@@ -312,10 +317,11 @@ static inline void task_cap(struct seq_f 5984@@ -331,10 +336,11 @@ static inline void task_cap(struct seq_f
6185 cap_bset = cred->cap_bset; 5985 NORM_CAPS(cap_effective);
6186 rcu_read_unlock(); 5986 NORM_CAPS(cap_bset);
6187 5987
6188- render_cap_t(m, "CapInh:\t", &cap_inheritable); 5988- render_cap_t(m, "CapInh:\t", &cap_inheritable);
6189- render_cap_t(m, "CapPrm:\t", &cap_permitted); 5989- render_cap_t(m, "CapPrm:\t", &cap_permitted);
@@ -6196,8 +5996,8 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/array.c linux-3.4.57-vs2.3.3.9/fs/pro
6196+ render_cap_t(m, "CapBnd:\t", p->vx_info, &cap_bset); 5996+ render_cap_t(m, "CapBnd:\t", p->vx_info, &cap_bset);
6197 } 5997 }
6198 5998
6199 static inline void task_context_switch_counts(struct seq_file *m, 5999 static inline void task_seccomp(struct seq_file *m, struct task_struct *p)
6200@@ -337,6 +343,42 @@ static void task_cpus_allowed(struct seq 6000@@ -363,6 +369,42 @@ static void task_cpus_allowed(struct seq
6201 seq_putc(m, '\n'); 6001 seq_putc(m, '\n');
6202 } 6002 }
6203 6003
@@ -6240,15 +6040,15 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/array.c linux-3.4.57-vs2.3.3.9/fs/pro
6240 int proc_pid_status(struct seq_file *m, struct pid_namespace *ns, 6040 int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
6241 struct pid *pid, struct task_struct *task) 6041 struct pid *pid, struct task_struct *task)
6242 { 6042 {
6243@@ -353,6 +395,7 @@ int proc_pid_status(struct seq_file *m, 6043@@ -380,6 +422,7 @@ int proc_pid_status(struct seq_file *m,
6244 task_cap(m, task); 6044 task_seccomp(m, task);
6245 task_cpus_allowed(m, task); 6045 task_cpus_allowed(m, task);
6246 cpuset_task_status_allowed(m, task); 6046 cpuset_task_status_allowed(m, task);
6247+ task_vs_id(m, task); 6047+ task_vs_id(m, task);
6248 task_context_switch_counts(m, task); 6048 task_context_switch_counts(m, task);
6249 return 0; 6049 return 0;
6250 } 6050 }
6251@@ -462,6 +505,17 @@ static int do_task_stat(struct seq_file 6051@@ -489,6 +532,17 @@ static int do_task_stat(struct seq_file
6252 /* convert nsec -> ticks */ 6052 /* convert nsec -> ticks */
6253 start_time = nsec_to_clock_t(start_time); 6053 start_time = nsec_to_clock_t(start_time);
6254 6054
@@ -6266,46 +6066,45 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/array.c linux-3.4.57-vs2.3.3.9/fs/pro
6266 seq_printf(m, "%d (%s) %c", pid_nr_ns(pid, ns), tcomm, state); 6066 seq_printf(m, "%d (%s) %c", pid_nr_ns(pid, ns), tcomm, state);
6267 seq_put_decimal_ll(m, ' ', ppid); 6067 seq_put_decimal_ll(m, ' ', ppid);
6268 seq_put_decimal_ll(m, ' ', pgid); 6068 seq_put_decimal_ll(m, ' ', pgid);
6269diff -NurpP --minimal linux-3.4.57/fs/proc/base.c linux-3.4.57-vs2.3.3.9/fs/proc/base.c 6069diff -NurpP --minimal linux-3.10.17/fs/proc/base.c linux-3.10.17-vs2.3.6.6/fs/proc/base.c
6270--- linux-3.4.57/fs/proc/base.c 2013-08-13 14:13:34.000000000 +0000 6070--- linux-3.10.17/fs/proc/base.c 2013-07-14 17:01:29.000000000 +0000
6271+++ linux-3.4.57-vs2.3.3.9/fs/proc/base.c 2012-06-28 14:45:07.000000000 +0000 6071+++ linux-3.10.17-vs2.3.6.6/fs/proc/base.c 2013-08-22 22:18:21.000000000 +0000
6272@@ -84,6 +84,8 @@ 6072@@ -87,6 +87,8 @@
6273 #include <linux/fs_struct.h>
6274 #include <linux/slab.h> 6073 #include <linux/slab.h>
6275 #include <linux/flex_array.h> 6074 #include <linux/flex_array.h>
6075 #include <linux/posix-timers.h>
6276+#include <linux/vs_context.h> 6076+#include <linux/vs_context.h>
6277+#include <linux/vs_network.h> 6077+#include <linux/vs_network.h>
6278 #ifdef CONFIG_HARDWALL 6078 #ifdef CONFIG_HARDWALL
6279 #include <asm/hardwall.h> 6079 #include <asm/hardwall.h>
6280 #endif 6080 #endif
6281@@ -937,11 +939,16 @@ static ssize_t oom_adjust_write(struct f 6081@@ -976,11 +978,15 @@ static ssize_t oom_adj_write(struct file
6282 goto err_task_lock; 6082 oom_adj = (oom_adj * OOM_SCORE_ADJ_MAX) / -OOM_DISABLE;
6283 }
6284 6083
6285- if (oom_adjust < task->signal->oom_adj && !capable(CAP_SYS_RESOURCE)) { 6084 if (oom_adj < task->signal->oom_score_adj &&
6286+ if (oom_adjust < task->signal->oom_adj && 6085- !capable(CAP_SYS_RESOURCE)) {
6287+ !vx_capable(CAP_SYS_RESOURCE, VXC_OOM_ADJUST)) { 6086+ !vx_capable(CAP_SYS_RESOURCE, VXC_OOM_ADJUST)) {
6288 err = -EACCES; 6087 err = -EACCES;
6289 goto err_sighand; 6088 goto err_sighand;
6290 } 6089 }
6291 6090
6292+ /* prevent guest processes from circumventing the oom killer */ 6091+ /* prevent guest processes from circumventing the oom killer */
6293+ if (vx_current_xid() && (oom_adjust == OOM_DISABLE)) 6092+ if (vx_current_xid() && (oom_adj == OOM_DISABLE))
6294+ oom_adjust = OOM_ADJUST_MIN; 6093+ oom_adj = OOM_ADJUST_MIN;
6295+ 6094+
6296 /* 6095 /*
6297 * Warn that /proc/pid/oom_adj is deprecated, see 6096 * /proc/pid/oom_adj is provided for legacy purposes, ask users to use
6298 * Documentation/feature-removal-schedule.txt. 6097 * /proc/pid/oom_score_adj instead.
6299@@ -1541,6 +1548,8 @@ struct inode *proc_pid_make_inode(struct 6098@@ -1559,6 +1565,8 @@ struct inode *proc_pid_make_inode(struct
6300 inode->i_gid = cred->egid; 6099 inode->i_gid = cred->egid;
6301 rcu_read_unlock(); 6100 rcu_read_unlock();
6302 } 6101 }
6303+ /* procfs is xid tagged */ 6102+ /* procfs is xid tagged */
6304+ inode->i_tag = (tag_t)vx_task_xid(task); 6103+ i_tag_write(inode, (vtag_t)vx_task_xid(task));
6305 security_task_to_inode(task, inode); 6104 security_task_to_inode(task, inode);
6306 6105
6307 out: 6106 out:
6308@@ -1586,6 +1595,8 @@ int pid_getattr(struct vfsmount *mnt, st 6107@@ -1604,6 +1612,8 @@ int pid_getattr(struct vfsmount *mnt, st
6309 6108
6310 /* dentry stuff */ 6109 /* dentry stuff */
6311 6110
@@ -6314,7 +6113,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/base.c linux-3.4.57-vs2.3.3.9/fs/proc
6314 /* 6113 /*
6315 * Exceptional case: normally we are not allowed to unhash a busy 6114 * Exceptional case: normally we are not allowed to unhash a busy
6316 * directory. In this case, however, we can do it - no aliasing problems 6115 * directory. In this case, however, we can do it - no aliasing problems
6317@@ -1614,6 +1625,12 @@ int pid_revalidate(struct dentry *dentry 6116@@ -1632,6 +1642,12 @@ int pid_revalidate(struct dentry *dentry
6318 task = get_proc_task(inode); 6117 task = get_proc_task(inode);
6319 6118
6320 if (task) { 6119 if (task) {
@@ -6327,7 +6126,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/base.c linux-3.4.57-vs2.3.3.9/fs/proc
6327 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) || 6126 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
6328 task_dumpable(task)) { 6127 task_dumpable(task)) {
6329 rcu_read_lock(); 6128 rcu_read_lock();
6330@@ -1630,6 +1647,7 @@ int pid_revalidate(struct dentry *dentry 6129@@ -1648,6 +1664,7 @@ int pid_revalidate(struct dentry *dentry
6331 put_task_struct(task); 6130 put_task_struct(task);
6332 return 1; 6131 return 1;
6333 } 6132 }
@@ -6335,7 +6134,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/base.c linux-3.4.57-vs2.3.3.9/fs/proc
6335 d_drop(dentry); 6134 d_drop(dentry);
6336 return 0; 6135 return 0;
6337 } 6136 }
6338@@ -2452,6 +2470,13 @@ static struct dentry *proc_pident_lookup 6137@@ -2196,6 +2213,13 @@ static struct dentry *proc_pident_lookup
6339 if (!task) 6138 if (!task)
6340 goto out_no_task; 6139 goto out_no_task;
6341 6140
@@ -6349,16 +6148,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/base.c linux-3.4.57-vs2.3.3.9/fs/proc
6349 /* 6148 /*
6350 * Yes, it does not scale. And it should not. Don't add 6149 * Yes, it does not scale. And it should not. Don't add
6351 * new entries into /proc/<tgid>/ without very good reasons. 6150 * new entries into /proc/<tgid>/ without very good reasons.
6352@@ -2837,7 +2862,7 @@ out_iput: 6151@@ -2630,6 +2654,9 @@ static int proc_pid_personality(struct s
6353 static struct dentry *proc_base_lookup(struct inode *dir, struct dentry *dentry)
6354 {
6355 struct dentry *error;
6356- struct task_struct *task = get_proc_task(dir);
6357+ struct task_struct *task = get_proc_task_real(dir);
6358 const struct pid_entry *p, *last;
6359
6360 error = ERR_PTR(-ENOENT);
6361@@ -2944,6 +2969,9 @@ static int proc_pid_personality(struct s
6362 static const struct file_operations proc_task_operations; 6152 static const struct file_operations proc_task_operations;
6363 static const struct inode_operations proc_task_inode_operations; 6153 static const struct inode_operations proc_task_inode_operations;
6364 6154
@@ -6368,24 +6158,16 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/base.c linux-3.4.57-vs2.3.3.9/fs/proc
6368 static const struct pid_entry tgid_base_stuff[] = { 6158 static const struct pid_entry tgid_base_stuff[] = {
6369 DIR("task", S_IRUGO|S_IXUGO, proc_task_inode_operations, proc_task_operations), 6159 DIR("task", S_IRUGO|S_IXUGO, proc_task_inode_operations, proc_task_operations),
6370 DIR("fd", S_IRUSR|S_IXUSR, proc_fd_inode_operations, proc_fd_operations), 6160 DIR("fd", S_IRUSR|S_IXUSR, proc_fd_inode_operations, proc_fd_operations),
6371@@ -3010,6 +3038,8 @@ static const struct pid_entry tgid_base_ 6161@@ -2696,6 +2723,8 @@ static const struct pid_entry tgid_base_
6372 #ifdef CONFIG_CGROUPS 6162 #ifdef CONFIG_CGROUPS
6373 REG("cgroup", S_IRUGO, proc_cgroup_operations), 6163 REG("cgroup", S_IRUGO, proc_cgroup_operations),
6374 #endif 6164 #endif
6375+ INF("vinfo", S_IRUGO, proc_pid_vx_info), 6165+ INF("vinfo", S_IRUGO, proc_pid_vx_info),
6376+ INF("ninfo", S_IRUGO, proc_pid_nx_info), 6166+ INF("ninfo", S_IRUGO, proc_pid_nx_info),
6377 INF("oom_score", S_IRUGO, proc_oom_score), 6167 INF("oom_score", S_IRUGO, proc_oom_score),
6378 REG("oom_adj", S_IRUGO|S_IWUSR, proc_oom_adjust_operations), 6168 REG("oom_adj", S_IRUGO|S_IWUSR, proc_oom_adj_operations),
6379 REG("oom_score_adj", S_IRUGO|S_IWUSR, proc_oom_score_adj_operations), 6169 REG("oom_score_adj", S_IRUGO|S_IWUSR, proc_oom_score_adj_operations),
6380@@ -3029,6 +3059,7 @@ static const struct pid_entry tgid_base_ 6170@@ -2910,7 +2939,7 @@ retry:
6381 #ifdef CONFIG_HARDWALL
6382 INF("hardwall", S_IRUGO, proc_pid_hardwall),
6383 #endif
6384+ ONE("nsproxy", S_IRUGO, proc_pid_nsproxy),
6385 };
6386
6387 static int proc_tgid_base_readdir(struct file * filp,
6388@@ -3222,7 +3253,7 @@ retry:
6389 iter.task = NULL; 6171 iter.task = NULL;
6390 pid = find_ge_pid(iter.tgid, ns); 6172 pid = find_ge_pid(iter.tgid, ns);
6391 if (pid) { 6173 if (pid) {
@@ -6394,7 +6176,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/base.c linux-3.4.57-vs2.3.3.9/fs/proc
6394 iter.task = pid_task(pid, PIDTYPE_PID); 6176 iter.task = pid_task(pid, PIDTYPE_PID);
6395 /* What we to know is if the pid we have find is the 6177 /* What we to know is if the pid we have find is the
6396 * pid of a thread_group_leader. Testing for task 6178 * pid of a thread_group_leader. Testing for task
6397@@ -3252,7 +3283,7 @@ static int proc_pid_fill_cache(struct fi 6179@@ -2940,7 +2969,7 @@ static int proc_pid_fill_cache(struct fi
6398 struct tgid_iter iter) 6180 struct tgid_iter iter)
6399 { 6181 {
6400 char name[PROC_NUMBUF]; 6182 char name[PROC_NUMBUF];
@@ -6403,16 +6185,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/base.c linux-3.4.57-vs2.3.3.9/fs/proc
6403 return proc_fill_cache(filp, dirent, filldir, name, len, 6185 return proc_fill_cache(filp, dirent, filldir, name, len,
6404 proc_pid_instantiate, iter.task, NULL); 6186 proc_pid_instantiate, iter.task, NULL);
6405 } 6187 }
6406@@ -3276,7 +3307,7 @@ int proc_pid_readdir(struct file * filp, 6188@@ -2981,6 +3010,8 @@ int proc_pid_readdir(struct file * filp,
6407 goto out_no_task;
6408 nr = filp->f_pos - FIRST_PROCESS_ENTRY;
6409
6410- reaper = get_proc_task(filp->f_path.dentry->d_inode);
6411+ reaper = get_proc_task_real(filp->f_path.dentry->d_inode);
6412 if (!reaper)
6413 goto out_no_task;
6414
6415@@ -3298,6 +3329,8 @@ int proc_pid_readdir(struct file * filp,
6416 __filldir = fake_filldir; 6189 __filldir = fake_filldir;
6417 6190
6418 filp->f_pos = iter.tgid + TGID_OFFSET; 6191 filp->f_pos = iter.tgid + TGID_OFFSET;
@@ -6421,7 +6194,15 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/base.c linux-3.4.57-vs2.3.3.9/fs/proc
6421 if (proc_pid_fill_cache(filp, dirent, __filldir, iter) < 0) { 6194 if (proc_pid_fill_cache(filp, dirent, __filldir, iter) < 0) {
6422 put_task_struct(iter.task); 6195 put_task_struct(iter.task);
6423 goto out; 6196 goto out;
6424@@ -3451,6 +3484,8 @@ static struct dentry *proc_task_lookup(s 6197@@ -3073,6 +3104,7 @@ static const struct pid_entry tid_base_s
6198 REG("gid_map", S_IRUGO|S_IWUSR, proc_gid_map_operations),
6199 REG("projid_map", S_IRUGO|S_IWUSR, proc_projid_map_operations),
6200 #endif
6201+ ONE("nsproxy", S_IRUGO, proc_pid_nsproxy),
6202 };
6203
6204 static int proc_tid_base_readdir(struct file * filp,
6205@@ -3141,6 +3173,8 @@ static struct dentry *proc_task_lookup(s
6425 tid = name_to_int(dentry); 6206 tid = name_to_int(dentry);
6426 if (tid == ~0U) 6207 if (tid == ~0U)
6427 goto out; 6208 goto out;
@@ -6430,10 +6211,10 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/base.c linux-3.4.57-vs2.3.3.9/fs/proc
6430 6211
6431 ns = dentry->d_sb->s_fs_info; 6212 ns = dentry->d_sb->s_fs_info;
6432 rcu_read_lock(); 6213 rcu_read_lock();
6433diff -NurpP --minimal linux-3.4.57/fs/proc/generic.c linux-3.4.57-vs2.3.3.9/fs/proc/generic.c 6214diff -NurpP --minimal linux-3.10.17/fs/proc/generic.c linux-3.10.17-vs2.3.6.6/fs/proc/generic.c
6434--- linux-3.4.57/fs/proc/generic.c 2012-03-19 18:47:26.000000000 +0000 6215--- linux-3.10.17/fs/proc/generic.c 2013-07-14 17:01:29.000000000 +0000
6435+++ linux-3.4.57-vs2.3.3.9/fs/proc/generic.c 2012-05-21 16:15:05.000000000 +0000 6216+++ linux-3.10.17-vs2.3.6.6/fs/proc/generic.c 2013-08-22 20:29:59.000000000 +0000
6436@@ -22,6 +22,7 @@ 6217@@ -23,6 +23,7 @@
6437 #include <linux/bitops.h> 6218 #include <linux/bitops.h>
6438 #include <linux/spinlock.h> 6219 #include <linux/spinlock.h>
6439 #include <linux/completion.h> 6220 #include <linux/completion.h>
@@ -6441,7 +6222,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/generic.c linux-3.4.57-vs2.3.3.9/fs/p
6441 #include <asm/uaccess.h> 6222 #include <asm/uaccess.h>
6442 6223
6443 #include "internal.h" 6224 #include "internal.h"
6444@@ -424,11 +425,15 @@ struct dentry *proc_lookup_de(struct pro 6225@@ -203,6 +204,8 @@ struct dentry *proc_lookup_de(struct pro
6445 for (de = de->subdir; de ; de = de->next) { 6226 for (de = de->subdir; de ; de = de->next) {
6446 if (de->namelen != dentry->d_name.len) 6227 if (de->namelen != dentry->d_name.len)
6447 continue; 6228 continue;
@@ -6450,14 +6231,16 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/generic.c linux-3.4.57-vs2.3.3.9/fs/p
6450 if (!memcmp(dentry->d_name.name, de->name, de->namelen)) { 6231 if (!memcmp(dentry->d_name.name, de->name, de->namelen)) {
6451 pde_get(de); 6232 pde_get(de);
6452 spin_unlock(&proc_subdir_lock); 6233 spin_unlock(&proc_subdir_lock);
6453 error = -EINVAL; 6234@@ -211,6 +214,8 @@ struct dentry *proc_lookup_de(struct pro
6454 inode = proc_get_inode(dir->i_sb, de); 6235 return ERR_PTR(-ENOMEM);
6236 d_set_d_op(dentry, &proc_dentry_operations);
6237 d_add(dentry, inode);
6455+ /* generic proc entries belong to the host */ 6238+ /* generic proc entries belong to the host */
6456+ inode->i_tag = 0; 6239+ i_tag_write(inode, 0);
6457 goto out_unlock; 6240 return NULL;
6458 } 6241 }
6459 } 6242 }
6460@@ -506,6 +511,8 @@ int proc_readdir_de(struct proc_dir_entr 6243@@ -279,6 +284,8 @@ int proc_readdir_de(struct proc_dir_entr
6461 6244
6462 /* filldir passes info to user space */ 6245 /* filldir passes info to user space */
6463 pde_get(de); 6246 pde_get(de);
@@ -6466,7 +6249,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/generic.c linux-3.4.57-vs2.3.3.9/fs/p
6466 spin_unlock(&proc_subdir_lock); 6249 spin_unlock(&proc_subdir_lock);
6467 if (filldir(dirent, de->name, de->namelen, filp->f_pos, 6250 if (filldir(dirent, de->name, de->namelen, filp->f_pos,
6468 de->low_ino, de->mode >> 12) < 0) { 6251 de->low_ino, de->mode >> 12) < 0) {
6469@@ -513,6 +520,7 @@ int proc_readdir_de(struct proc_dir_entr 6252@@ -286,6 +293,7 @@ int proc_readdir_de(struct proc_dir_entr
6470 goto out; 6253 goto out;
6471 } 6254 }
6472 spin_lock(&proc_subdir_lock); 6255 spin_lock(&proc_subdir_lock);
@@ -6474,15 +6257,15 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/generic.c linux-3.4.57-vs2.3.3.9/fs/p
6474 filp->f_pos++; 6257 filp->f_pos++;
6475 next = de->next; 6258 next = de->next;
6476 pde_put(de); 6259 pde_put(de);
6477@@ -626,6 +634,7 @@ static struct proc_dir_entry *__proc_cre 6260@@ -395,6 +403,7 @@ static struct proc_dir_entry *__proc_cre
6261 ent->namelen = len;
6262 ent->mode = mode;
6478 ent->nlink = nlink; 6263 ent->nlink = nlink;
6479 atomic_set(&ent->count, 1);
6480 ent->pde_users = 0;
6481+ ent->vx_flags = IATTR_PROC_DEFAULT; 6264+ ent->vx_flags = IATTR_PROC_DEFAULT;
6265 atomic_set(&ent->count, 1);
6482 spin_lock_init(&ent->pde_unload_lock); 6266 spin_lock_init(&ent->pde_unload_lock);
6483 ent->pde_unload_completion = NULL;
6484 INIT_LIST_HEAD(&ent->pde_openers); 6267 INIT_LIST_HEAD(&ent->pde_openers);
6485@@ -649,7 +658,8 @@ struct proc_dir_entry *proc_symlink(cons 6268@@ -418,7 +427,8 @@ struct proc_dir_entry *proc_symlink(cons
6486 kfree(ent->data); 6269 kfree(ent->data);
6487 kfree(ent); 6270 kfree(ent);
6488 ent = NULL; 6271 ent = NULL;
@@ -6492,10 +6275,10 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/generic.c linux-3.4.57-vs2.3.3.9/fs/p
6492 } else { 6275 } else {
6493 kfree(ent); 6276 kfree(ent);
6494 ent = NULL; 6277 ent = NULL;
6495diff -NurpP --minimal linux-3.4.57/fs/proc/inode.c linux-3.4.57-vs2.3.3.9/fs/proc/inode.c 6278diff -NurpP --minimal linux-3.10.17/fs/proc/inode.c linux-3.10.17-vs2.3.6.6/fs/proc/inode.c
6496--- linux-3.4.57/fs/proc/inode.c 2012-05-21 16:07:26.000000000 +0000 6279--- linux-3.10.17/fs/proc/inode.c 2013-07-14 17:01:29.000000000 +0000
6497+++ linux-3.4.57-vs2.3.3.9/fs/proc/inode.c 2012-05-21 16:15:05.000000000 +0000 6280+++ linux-3.10.17-vs2.3.6.6/fs/proc/inode.c 2013-08-22 20:29:59.000000000 +0000
6498@@ -458,6 +458,8 @@ struct inode *proc_get_inode(struct supe 6281@@ -387,6 +387,8 @@ struct inode *proc_get_inode(struct supe
6499 inode->i_uid = de->uid; 6282 inode->i_uid = de->uid;
6500 inode->i_gid = de->gid; 6283 inode->i_gid = de->gid;
6501 } 6284 }
@@ -6504,29 +6287,50 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/inode.c linux-3.4.57-vs2.3.3.9/fs/pro
6504 if (de->size) 6287 if (de->size)
6505 inode->i_size = de->size; 6288 inode->i_size = de->size;
6506 if (de->nlink) 6289 if (de->nlink)
6507diff -NurpP --minimal linux-3.4.57/fs/proc/internal.h linux-3.4.57-vs2.3.3.9/fs/proc/internal.h 6290diff -NurpP --minimal linux-3.10.17/fs/proc/internal.h linux-3.10.17-vs2.3.6.6/fs/proc/internal.h
6508--- linux-3.4.57/fs/proc/internal.h 2012-05-21 16:07:26.000000000 +0000 6291--- linux-3.10.17/fs/proc/internal.h 2013-07-14 17:01:29.000000000 +0000
6509+++ linux-3.4.57-vs2.3.3.9/fs/proc/internal.h 2012-05-21 16:15:05.000000000 +0000 6292+++ linux-3.10.17-vs2.3.6.6/fs/proc/internal.h 2013-08-22 21:52:30.000000000 +0000
6510@@ -10,6 +10,8 @@ 6293@@ -14,6 +14,7 @@
6511 */ 6294 #include <linux/spinlock.h>
6512 6295 #include <linux/atomic.h>
6513 #include <linux/proc_fs.h> 6296 #include <linux/binfmts.h>
6514+#include <linux/vs_pid.h> 6297+#include <linux/vs_pid.h>
6515+
6516 struct ctl_table_header;
6517 6298
6518 extern struct proc_dir_entry proc_root; 6299 struct ctl_table_header;
6519@@ -54,6 +56,9 @@ extern int proc_pid_status(struct seq_fi 6300 struct mempolicy;
6520 struct pid *pid, struct task_struct *task); 6301@@ -35,6 +36,7 @@ struct proc_dir_entry {
6521 extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns, 6302 nlink_t nlink;
6522 struct pid *pid, struct task_struct *task); 6303 kuid_t uid;
6523+extern int proc_pid_nsproxy(struct seq_file *m, struct pid_namespace *ns, 6304 kgid_t gid;
6524+ struct pid *pid, struct task_struct *task); 6305+ int vx_flags;
6306 loff_t size;
6307 const struct inode_operations *proc_iops;
6308 const struct file_operations *proc_fops;
6309@@ -50,16 +52,23 @@ struct proc_dir_entry {
6310 char name[];
6311 };
6312
6313+struct vx_info;
6314+struct nx_info;
6525+ 6315+
6526 extern loff_t mem_lseek(struct file *file, loff_t offset, int orig); 6316 union proc_op {
6317 int (*proc_get_link)(struct dentry *, struct path *);
6318 int (*proc_read)(struct task_struct *task, char *page);
6319 int (*proc_show)(struct seq_file *m,
6320 struct pid_namespace *ns, struct pid *pid,
6321 struct task_struct *task);
6322+ int (*proc_vs_read)(char *page);
6323+ int (*proc_vxi_read)(struct vx_info *vxi, char *page);
6324+ int (*proc_nxi_read)(struct nx_info *nxi, char *page);
6325 };
6527 6326
6528 extern const struct file_operations proc_pid_maps_operations; 6327 struct proc_inode {
6529@@ -82,11 +87,16 @@ static inline struct pid *proc_pid(struc 6328 struct pid *pid;
6329+ int vx_flags;
6330 int fd;
6331 union proc_op op;
6332 struct proc_dir_entry *pde;
6333@@ -92,11 +101,16 @@ static inline struct pid *proc_pid(struc
6530 return PROC_I(inode)->pid; 6334 return PROC_I(inode)->pid;
6531 } 6335 }
6532 6336
@@ -6541,12 +6345,21 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/internal.h linux-3.4.57-vs2.3.3.9/fs/
6541+ return vx_get_proc_task(inode, proc_pid(inode)); 6345+ return vx_get_proc_task(inode, proc_pid(inode));
6542+} 6346+}
6543+ 6347+
6544 static inline int proc_fd(struct inode *inode) 6348 static inline int task_dumpable(struct task_struct *task)
6545 { 6349 {
6546 return PROC_I(inode)->fd; 6350 int dumpable = 0;
6547diff -NurpP --minimal linux-3.4.57/fs/proc/loadavg.c linux-3.4.57-vs2.3.3.9/fs/proc/loadavg.c 6351@@ -155,6 +169,8 @@ extern int proc_pid_status(struct seq_fi
6548--- linux-3.4.57/fs/proc/loadavg.c 2009-09-10 13:26:23.000000000 +0000 6352 struct pid *, struct task_struct *);
6549+++ linux-3.4.57-vs2.3.3.9/fs/proc/loadavg.c 2012-05-21 16:15:05.000000000 +0000 6353 extern int proc_pid_statm(struct seq_file *, struct pid_namespace *,
6354 struct pid *, struct task_struct *);
6355+extern int proc_pid_nsproxy(struct seq_file *m, struct pid_namespace *ns,
6356+ struct pid *pid, struct task_struct *task);
6357
6358 /*
6359 * base.c
6360diff -NurpP --minimal linux-3.10.17/fs/proc/loadavg.c linux-3.10.17-vs2.3.6.6/fs/proc/loadavg.c
6361--- linux-3.10.17/fs/proc/loadavg.c 2012-12-11 03:30:57.000000000 +0000
6362+++ linux-3.10.17-vs2.3.6.6/fs/proc/loadavg.c 2013-08-22 20:30:00.000000000 +0000
6550@@ -12,15 +12,27 @@ 6363@@ -12,15 +12,27 @@
6551 6364
6552 static int loadavg_proc_show(struct seq_file *m, void *v) 6365 static int loadavg_proc_show(struct seq_file *m, void *v)
@@ -6576,23 +6389,23 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/loadavg.c linux-3.4.57-vs2.3.3.9/fs/p
6576 task_active_pid_ns(current)->last_pid); 6389 task_active_pid_ns(current)->last_pid);
6577 return 0; 6390 return 0;
6578 } 6391 }
6579diff -NurpP --minimal linux-3.4.57/fs/proc/meminfo.c linux-3.4.57-vs2.3.3.9/fs/proc/meminfo.c 6392diff -NurpP --minimal linux-3.10.17/fs/proc/meminfo.c linux-3.10.17-vs2.3.6.6/fs/proc/meminfo.c
6580--- linux-3.4.57/fs/proc/meminfo.c 2012-01-09 15:14:55.000000000 +0000 6393--- linux-3.10.17/fs/proc/meminfo.c 2013-07-14 17:01:29.000000000 +0000
6581+++ linux-3.4.57-vs2.3.3.9/fs/proc/meminfo.c 2012-05-21 16:15:05.000000000 +0000 6394+++ linux-3.10.17-vs2.3.6.6/fs/proc/meminfo.c 2013-08-22 20:30:00.000000000 +0000
6582@@ -39,7 +39,8 @@ static int meminfo_proc_show(struct seq_ 6395@@ -40,7 +40,8 @@ static int meminfo_proc_show(struct seq_
6583 allowed = ((totalram_pages - hugetlb_total_pages()) 6396 allowed = ((totalram_pages - hugetlb_total_pages())
6584 * sysctl_overcommit_ratio / 100) + total_swap_pages; 6397 * sysctl_overcommit_ratio / 100) + total_swap_pages;
6585 6398
6586- cached = global_page_state(NR_FILE_PAGES) - 6399- cached = global_page_state(NR_FILE_PAGES) -
6587+ cached = vx_flags(VXF_VIRT_MEM, 0) ? 6400+ cached = vx_flags(VXF_VIRT_MEM, 0) ?
6588+ vx_vsi_cached(&i) : global_page_state(NR_FILE_PAGES) - 6401+ vx_vsi_cached(&i) : global_page_state(NR_FILE_PAGES) -
6589 total_swapcache_pages - i.bufferram; 6402 total_swapcache_pages() - i.bufferram;
6590 if (cached < 0) 6403 if (cached < 0)
6591 cached = 0; 6404 cached = 0;
6592diff -NurpP --minimal linux-3.4.57/fs/proc/root.c linux-3.4.57-vs2.3.3.9/fs/proc/root.c 6405diff -NurpP --minimal linux-3.10.17/fs/proc/root.c linux-3.10.17-vs2.3.6.6/fs/proc/root.c
6593--- linux-3.4.57/fs/proc/root.c 2012-05-21 16:07:26.000000000 +0000 6406--- linux-3.10.17/fs/proc/root.c 2013-10-25 15:17:43.000000000 +0000
6594+++ linux-3.4.57-vs2.3.3.9/fs/proc/root.c 2012-05-21 16:15:05.000000000 +0000 6407+++ linux-3.10.17-vs2.3.6.6/fs/proc/root.c 2013-10-09 17:37:22.000000000 +0000
6595@@ -19,9 +19,14 @@ 6408@@ -20,9 +20,14 @@
6596 #include <linux/mount.h> 6409 #include <linux/mount.h>
6597 #include <linux/pid_namespace.h> 6410 #include <linux/pid_namespace.h>
6598 #include <linux/parser.h> 6411 #include <linux/parser.h>
@@ -6607,7 +6420,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/root.c linux-3.4.57-vs2.3.3.9/fs/proc
6607 static int proc_test_super(struct super_block *sb, void *data) 6420 static int proc_test_super(struct super_block *sb, void *data)
6608 { 6421 {
6609 return sb->s_fs_info == data; 6422 return sb->s_fs_info == data;
6610@@ -190,6 +195,7 @@ void __init proc_root_init(void) 6423@@ -185,6 +190,7 @@ void __init proc_root_init(void)
6611 #endif 6424 #endif
6612 proc_mkdir("bus", NULL); 6425 proc_mkdir("bus", NULL);
6613 proc_sys_init(); 6426 proc_sys_init();
@@ -6615,7 +6428,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/root.c linux-3.4.57-vs2.3.3.9/fs/proc
6615 } 6428 }
6616 6429
6617 static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat 6430 static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat
6618@@ -257,6 +263,7 @@ struct proc_dir_entry proc_root = { 6431@@ -251,6 +257,7 @@ struct proc_dir_entry proc_root = {
6619 .proc_iops = &proc_root_inode_operations, 6432 .proc_iops = &proc_root_inode_operations,
6620 .proc_fops = &proc_root_operations, 6433 .proc_fops = &proc_root_operations,
6621 .parent = &proc_root, 6434 .parent = &proc_root,
@@ -6623,18 +6436,48 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/root.c linux-3.4.57-vs2.3.3.9/fs/proc
6623 .name = "/proc", 6436 .name = "/proc",
6624 }; 6437 };
6625 6438
6626diff -NurpP --minimal linux-3.4.57/fs/proc/stat.c linux-3.4.57-vs2.3.3.9/fs/proc/stat.c 6439diff -NurpP --minimal linux-3.10.17/fs/proc/self.c linux-3.10.17-vs2.3.6.6/fs/proc/self.c
6627--- linux-3.4.57/fs/proc/stat.c 2013-08-13 14:13:34.000000000 +0000 6440--- linux-3.10.17/fs/proc/self.c 2013-07-14 17:01:29.000000000 +0000
6628+++ linux-3.4.57-vs2.3.3.9/fs/proc/stat.c 2012-11-06 17:02:35.000000000 +0000 6441+++ linux-3.10.17-vs2.3.6.6/fs/proc/self.c 2013-08-23 00:07:45.000000000 +0000
6629@@ -9,6 +9,7 @@ 6442@@ -2,6 +2,7 @@
6443 #include <linux/namei.h>
6444 #include <linux/slab.h>
6445 #include <linux/pid_namespace.h>
6446+#include <linux/vserver/inode.h>
6447 #include "internal.h"
6448
6449 /*
6450@@ -62,6 +63,8 @@ int proc_setup_self(struct super_block *
6451 self = d_alloc_name(s->s_root, "self");
6452 if (self) {
6453 struct inode *inode = new_inode_pseudo(s);
6454+
6455+ // self->vx_flags = IATTR_PROC_SYMLINK;
6456 if (inode) {
6457 inode->i_ino = self_inum;
6458 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
6459diff -NurpP --minimal linux-3.10.17/fs/proc/stat.c linux-3.10.17-vs2.3.6.6/fs/proc/stat.c
6460--- linux-3.10.17/fs/proc/stat.c 2013-07-14 17:01:29.000000000 +0000
6461+++ linux-3.10.17-vs2.3.6.6/fs/proc/stat.c 2013-08-22 20:30:00.000000000 +0000
6462@@ -9,8 +9,10 @@
6630 #include <linux/slab.h> 6463 #include <linux/slab.h>
6631 #include <linux/time.h> 6464 #include <linux/time.h>
6632 #include <linux/irqnr.h> 6465 #include <linux/irqnr.h>
6633+#include <linux/vserver/cvirt.h> 6466+#include <linux/vserver/cvirt.h>
6634 #include <asm/cputime.h> 6467 #include <asm/cputime.h>
6635 #include <linux/tick.h> 6468 #include <linux/tick.h>
6636 6469+#include <linux/cpuset.h>
6637@@ -92,6 +93,10 @@ static int show_stat(struct seq_file *p, 6470
6471 #ifndef arch_irq_stat_cpu
6472 #define arch_irq_stat_cpu(cpu) 0
6473@@ -87,14 +89,26 @@ static int show_stat(struct seq_file *p,
6474 u64 sum_softirq = 0;
6475 unsigned int per_softirq_sums[NR_SOFTIRQS] = {0};
6476 struct timespec boottime;
6477+ cpumask_var_t cpus_allowed;
6478+ bool virt_cpu = vx_flags(VXF_VIRT_CPU, 0);
6479
6480 user = nice = system = idle = iowait =
6638 irq = softirq = steal = 0; 6481 irq = softirq = steal = 0;
6639 guest = guest_nice = 0; 6482 guest = guest_nice = 0;
6640 getboottime(&boottime); 6483 getboottime(&boottime);
@@ -6642,12 +6485,31 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/stat.c linux-3.4.57-vs2.3.3.9/fs/proc
6642+ if (vx_flags(VXF_VIRT_UPTIME, 0)) 6485+ if (vx_flags(VXF_VIRT_UPTIME, 0))
6643+ vx_vsi_boottime(&boottime); 6486+ vx_vsi_boottime(&boottime);
6644+ 6487+
6488+ if (virt_cpu)
6489+ cpuset_cpus_allowed(current, cpus_allowed);
6490+
6645 jif = boottime.tv_sec; 6491 jif = boottime.tv_sec;
6646 6492
6647 for_each_possible_cpu(i) { 6493 for_each_possible_cpu(i) {
6648diff -NurpP --minimal linux-3.4.57/fs/proc/uptime.c linux-3.4.57-vs2.3.3.9/fs/proc/uptime.c 6494+ if (virt_cpu && !cpumask_test_cpu(i, cpus_allowed))
6649--- linux-3.4.57/fs/proc/uptime.c 2012-03-19 18:47:26.000000000 +0000 6495+ continue;
6650+++ linux-3.4.57-vs2.3.3.9/fs/proc/uptime.c 2012-05-21 16:15:05.000000000 +0000 6496+
6497 user += kcpustat_cpu(i).cpustat[CPUTIME_USER];
6498 nice += kcpustat_cpu(i).cpustat[CPUTIME_NICE];
6499 system += kcpustat_cpu(i).cpustat[CPUTIME_SYSTEM];
6500@@ -131,6 +145,9 @@ static int show_stat(struct seq_file *p,
6501 seq_putc(p, '\n');
6502
6503 for_each_online_cpu(i) {
6504+ if (virt_cpu && !cpumask_test_cpu(i, cpus_allowed))
6505+ continue;
6506+
6507 /* Copy values here to work around gcc-2.95.3, gcc-2.96 */
6508 user = kcpustat_cpu(i).cpustat[CPUTIME_USER];
6509 nice = kcpustat_cpu(i).cpustat[CPUTIME_NICE];
6510diff -NurpP --minimal linux-3.10.17/fs/proc/uptime.c linux-3.10.17-vs2.3.6.6/fs/proc/uptime.c
6511--- linux-3.10.17/fs/proc/uptime.c 2012-12-11 03:30:57.000000000 +0000
6512+++ linux-3.10.17-vs2.3.6.6/fs/proc/uptime.c 2013-08-22 20:30:00.000000000 +0000
6651@@ -5,6 +5,7 @@ 6513@@ -5,6 +5,7 @@
6652 #include <linux/seq_file.h> 6514 #include <linux/seq_file.h>
6653 #include <linux/time.h> 6515 #include <linux/time.h>
@@ -6667,9 +6529,9 @@ diff -NurpP --minimal linux-3.4.57/fs/proc/uptime.c linux-3.4.57-vs2.3.3.9/fs/pr
6667 seq_printf(m, "%lu.%02lu %lu.%02lu\n", 6529 seq_printf(m, "%lu.%02lu %lu.%02lu\n",
6668 (unsigned long) uptime.tv_sec, 6530 (unsigned long) uptime.tv_sec,
6669 (uptime.tv_nsec / (NSEC_PER_SEC / 100)), 6531 (uptime.tv_nsec / (NSEC_PER_SEC / 100)),
6670diff -NurpP --minimal linux-3.4.57/fs/proc_namespace.c linux-3.4.57-vs2.3.3.9/fs/proc_namespace.c 6532diff -NurpP --minimal linux-3.10.17/fs/proc_namespace.c linux-3.10.17-vs2.3.6.6/fs/proc_namespace.c
6671--- linux-3.4.57/fs/proc_namespace.c 2012-03-19 18:47:26.000000000 +0000 6533--- linux-3.10.17/fs/proc_namespace.c 2012-12-11 03:30:57.000000000 +0000
6672+++ linux-3.4.57-vs2.3.3.9/fs/proc_namespace.c 2012-05-21 16:15:05.000000000 +0000 6534+++ linux-3.10.17-vs2.3.6.6/fs/proc_namespace.c 2013-08-22 20:30:00.000000000 +0000
6673@@ -44,6 +44,8 @@ static int show_sb_opts(struct seq_file 6535@@ -44,6 +44,8 @@ static int show_sb_opts(struct seq_file
6674 { MS_SYNCHRONOUS, ",sync" }, 6536 { MS_SYNCHRONOUS, ",sync" },
6675 { MS_DIRSYNC, ",dirsync" }, 6537 { MS_DIRSYNC, ",dirsync" },
@@ -6679,10 +6541,12 @@ diff -NurpP --minimal linux-3.4.57/fs/proc_namespace.c linux-3.4.57-vs2.3.3.9/fs
6679 { 0, NULL } 6541 { 0, NULL }
6680 }; 6542 };
6681 const struct proc_fs_info *fs_infop; 6543 const struct proc_fs_info *fs_infop;
6682@@ -80,6 +82,34 @@ static inline void mangle(struct seq_fil 6544@@ -80,6 +82,40 @@ static inline void mangle(struct seq_fil
6683 seq_escape(m, s, " \t\n\\"); 6545 seq_escape(m, s, " \t\n\\");
6684 } 6546 }
6685 6547
6548+#ifdef CONFIG_VSERVER_EXTRA_MNT_CHECK
6549+
6686+static int mnt_is_reachable(struct vfsmount *vfsmnt) 6550+static int mnt_is_reachable(struct vfsmount *vfsmnt)
6687+{ 6551+{
6688+ struct path root; 6552+ struct path root;
@@ -6694,7 +6558,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc_namespace.c linux-3.4.57-vs2.3.3.9/fs
6694+ if (mnt == mnt->mnt_ns->root) 6558+ if (mnt == mnt->mnt_ns->root)
6695+ return 1; 6559+ return 1;
6696+ 6560+
6697+ br_read_lock(vfsmount_lock); 6561+ br_read_lock(&vfsmount_lock);
6698+ root = current->fs->root; 6562+ root = current->fs->root;
6699+ root_mnt = real_mount(root.mnt); 6563+ root_mnt = real_mount(root.mnt);
6700+ point = root.dentry; 6564+ point = root.dentry;
@@ -6706,15 +6570,19 @@ diff -NurpP --minimal linux-3.4.57/fs/proc_namespace.c linux-3.4.57-vs2.3.3.9/fs
6706+ 6570+
6707+ ret = (mnt == root_mnt) && is_subdir(point, root.dentry); 6571+ ret = (mnt == root_mnt) && is_subdir(point, root.dentry);
6708+ 6572+
6709+ br_read_unlock(vfsmount_lock); 6573+ br_read_unlock(&vfsmount_lock);
6710+ 6574+
6711+ return ret; 6575+ return ret;
6712+} 6576+}
6713+ 6577+
6578+#else
6579+#define mnt_is_reachable(v) (1)
6580+#endif
6581+
6714 static void show_type(struct seq_file *m, struct super_block *sb) 6582 static void show_type(struct seq_file *m, struct super_block *sb)
6715 { 6583 {
6716 mangle(m, sb->s_type->name); 6584 mangle(m, sb->s_type->name);
6717@@ -96,6 +126,17 @@ static int show_vfsmnt(struct seq_file * 6585@@ -96,6 +132,17 @@ static int show_vfsmnt(struct seq_file *
6718 struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt }; 6586 struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
6719 struct super_block *sb = mnt_path.dentry->d_sb; 6587 struct super_block *sb = mnt_path.dentry->d_sb;
6720 6588
@@ -6732,7 +6600,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc_namespace.c linux-3.4.57-vs2.3.3.9/fs
6732 if (sb->s_op->show_devname) { 6600 if (sb->s_op->show_devname) {
6733 err = sb->s_op->show_devname(m, mnt_path.dentry); 6601 err = sb->s_op->show_devname(m, mnt_path.dentry);
6734 if (err) 6602 if (err)
6735@@ -106,6 +147,7 @@ static int show_vfsmnt(struct seq_file * 6603@@ -106,6 +153,7 @@ static int show_vfsmnt(struct seq_file *
6736 seq_putc(m, ' '); 6604 seq_putc(m, ' ');
6737 seq_path(m, &mnt_path, " \t\n\\"); 6605 seq_path(m, &mnt_path, " \t\n\\");
6738 seq_putc(m, ' '); 6606 seq_putc(m, ' ');
@@ -6740,7 +6608,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc_namespace.c linux-3.4.57-vs2.3.3.9/fs
6740 show_type(m, sb); 6608 show_type(m, sb);
6741 seq_puts(m, __mnt_is_readonly(mnt) ? " ro" : " rw"); 6609 seq_puts(m, __mnt_is_readonly(mnt) ? " ro" : " rw");
6742 err = show_sb_opts(m, sb); 6610 err = show_sb_opts(m, sb);
6743@@ -128,6 +170,11 @@ static int show_mountinfo(struct seq_fil 6611@@ -128,6 +176,11 @@ static int show_mountinfo(struct seq_fil
6744 struct path root = p->root; 6612 struct path root = p->root;
6745 int err = 0; 6613 int err = 0;
6746 6614
@@ -6752,7 +6620,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc_namespace.c linux-3.4.57-vs2.3.3.9/fs
6752 seq_printf(m, "%i %i %u:%u ", r->mnt_id, r->mnt_parent->mnt_id, 6620 seq_printf(m, "%i %i %u:%u ", r->mnt_id, r->mnt_parent->mnt_id,
6753 MAJOR(sb->s_dev), MINOR(sb->s_dev)); 6621 MAJOR(sb->s_dev), MINOR(sb->s_dev));
6754 if (sb->s_op->show_path) 6622 if (sb->s_op->show_path)
6755@@ -187,6 +234,17 @@ static int show_vfsstat(struct seq_file 6623@@ -187,6 +240,17 @@ static int show_vfsstat(struct seq_file
6756 struct super_block *sb = mnt_path.dentry->d_sb; 6624 struct super_block *sb = mnt_path.dentry->d_sb;
6757 int err = 0; 6625 int err = 0;
6758 6626
@@ -6770,7 +6638,7 @@ diff -NurpP --minimal linux-3.4.57/fs/proc_namespace.c linux-3.4.57-vs2.3.3.9/fs
6770 /* device */ 6638 /* device */
6771 if (sb->s_op->show_devname) { 6639 if (sb->s_op->show_devname) {
6772 seq_puts(m, "device "); 6640 seq_puts(m, "device ");
6773@@ -203,7 +261,7 @@ static int show_vfsstat(struct seq_file 6641@@ -203,7 +267,7 @@ static int show_vfsstat(struct seq_file
6774 seq_puts(m, " mounted on "); 6642 seq_puts(m, " mounted on ");
6775 seq_path(m, &mnt_path, " \t\n\\"); 6643 seq_path(m, &mnt_path, " \t\n\\");
6776 seq_putc(m, ' '); 6644 seq_putc(m, ' ');
@@ -6779,10 +6647,10 @@ diff -NurpP --minimal linux-3.4.57/fs/proc_namespace.c linux-3.4.57-vs2.3.3.9/fs
6779 /* file system type */ 6647 /* file system type */
6780 seq_puts(m, "with fstype "); 6648 seq_puts(m, "with fstype ");
6781 show_type(m, sb); 6649 show_type(m, sb);
6782diff -NurpP --minimal linux-3.4.57/fs/quota/dquot.c linux-3.4.57-vs2.3.3.9/fs/quota/dquot.c 6650diff -NurpP --minimal linux-3.10.17/fs/quota/dquot.c linux-3.10.17-vs2.3.6.6/fs/quota/dquot.c
6783--- linux-3.4.57/fs/quota/dquot.c 2012-05-21 16:07:26.000000000 +0000 6651--- linux-3.10.17/fs/quota/dquot.c 2013-05-31 13:45:25.000000000 +0000
6784+++ linux-3.4.57-vs2.3.3.9/fs/quota/dquot.c 2012-05-21 16:15:05.000000000 +0000 6652+++ linux-3.10.17-vs2.3.6.6/fs/quota/dquot.c 2013-08-22 20:30:00.000000000 +0000
6785@@ -1563,6 +1563,9 @@ int __dquot_alloc_space(struct inode *in 6653@@ -1585,6 +1585,9 @@ int __dquot_alloc_space(struct inode *in
6786 struct dquot **dquots = inode->i_dquot; 6654 struct dquot **dquots = inode->i_dquot;
6787 int reserve = flags & DQUOT_SPACE_RESERVE; 6655 int reserve = flags & DQUOT_SPACE_RESERVE;
6788 6656
@@ -6792,7 +6660,7 @@ diff -NurpP --minimal linux-3.4.57/fs/quota/dquot.c linux-3.4.57-vs2.3.3.9/fs/qu
6792 /* 6660 /*
6793 * First test before acquiring mutex - solves deadlocks when we 6661 * First test before acquiring mutex - solves deadlocks when we
6794 * re-enter the quota code and are already holding the mutex 6662 * re-enter the quota code and are already holding the mutex
6795@@ -1618,6 +1621,9 @@ int dquot_alloc_inode(const struct inode 6663@@ -1640,6 +1643,9 @@ int dquot_alloc_inode(const struct inode
6796 struct dquot_warn warn[MAXQUOTAS]; 6664 struct dquot_warn warn[MAXQUOTAS];
6797 struct dquot * const *dquots = inode->i_dquot; 6665 struct dquot * const *dquots = inode->i_dquot;
6798 6666
@@ -6802,7 +6670,7 @@ diff -NurpP --minimal linux-3.4.57/fs/quota/dquot.c linux-3.4.57-vs2.3.3.9/fs/qu
6802 /* First test before acquiring mutex - solves deadlocks when we 6670 /* First test before acquiring mutex - solves deadlocks when we
6803 * re-enter the quota code and are already holding the mutex */ 6671 * re-enter the quota code and are already holding the mutex */
6804 if (!dquot_active(inode)) 6672 if (!dquot_active(inode))
6805@@ -1689,6 +1695,8 @@ void __dquot_free_space(struct inode *in 6673@@ -1711,6 +1717,8 @@ void __dquot_free_space(struct inode *in
6806 struct dquot **dquots = inode->i_dquot; 6674 struct dquot **dquots = inode->i_dquot;
6807 int reserve = flags & DQUOT_SPACE_RESERVE; 6675 int reserve = flags & DQUOT_SPACE_RESERVE;
6808 6676
@@ -6811,7 +6679,7 @@ diff -NurpP --minimal linux-3.4.57/fs/quota/dquot.c linux-3.4.57-vs2.3.3.9/fs/qu
6811 /* First test before acquiring mutex - solves deadlocks when we 6679 /* First test before acquiring mutex - solves deadlocks when we
6812 * re-enter the quota code and are already holding the mutex */ 6680 * re-enter the quota code and are already holding the mutex */
6813 if (!dquot_active(inode)) { 6681 if (!dquot_active(inode)) {
6814@@ -1733,6 +1741,8 @@ void dquot_free_inode(const struct inode 6682@@ -1755,6 +1763,8 @@ void dquot_free_inode(const struct inode
6815 struct dquot_warn warn[MAXQUOTAS]; 6683 struct dquot_warn warn[MAXQUOTAS];
6816 struct dquot * const *dquots = inode->i_dquot; 6684 struct dquot * const *dquots = inode->i_dquot;
6817 6685
@@ -6820,16 +6688,16 @@ diff -NurpP --minimal linux-3.4.57/fs/quota/dquot.c linux-3.4.57-vs2.3.3.9/fs/qu
6820 /* First test before acquiring mutex - solves deadlocks when we 6688 /* First test before acquiring mutex - solves deadlocks when we
6821 * re-enter the quota code and are already holding the mutex */ 6689 * re-enter the quota code and are already holding the mutex */
6822 if (!dquot_active(inode)) 6690 if (!dquot_active(inode))
6823diff -NurpP --minimal linux-3.4.57/fs/quota/quota.c linux-3.4.57-vs2.3.3.9/fs/quota/quota.c 6691diff -NurpP --minimal linux-3.10.17/fs/quota/quota.c linux-3.10.17-vs2.3.6.6/fs/quota/quota.c
6824--- linux-3.4.57/fs/quota/quota.c 2012-05-21 16:07:26.000000000 +0000 6692--- linux-3.10.17/fs/quota/quota.c 2013-02-19 13:58:49.000000000 +0000
6825+++ linux-3.4.57-vs2.3.3.9/fs/quota/quota.c 2012-05-21 16:15:05.000000000 +0000 6693+++ linux-3.10.17-vs2.3.6.6/fs/quota/quota.c 2013-08-22 20:30:00.000000000 +0000
6826@@ -8,6 +8,7 @@ 6694@@ -8,6 +8,7 @@
6827 #include <linux/fs.h> 6695 #include <linux/fs.h>
6828 #include <linux/namei.h> 6696 #include <linux/namei.h>
6829 #include <linux/slab.h> 6697 #include <linux/slab.h>
6830+#include <linux/vs_context.h> 6698+#include <linux/vs_context.h>
6831 #include <asm/current.h> 6699 #include <asm/current.h>
6832 #include <asm/uaccess.h> 6700 #include <linux/uaccess.h>
6833 #include <linux/kernel.h> 6701 #include <linux/kernel.h>
6834@@ -37,7 +38,7 @@ static int check_quotactl_permission(str 6702@@ -37,7 +38,7 @@ static int check_quotactl_permission(str
6835 break; 6703 break;
@@ -6840,9 +6708,9 @@ diff -NurpP --minimal linux-3.4.57/fs/quota/quota.c linux-3.4.57-vs2.3.3.9/fs/qu
6840 return -EPERM; 6708 return -EPERM;
6841 } 6709 }
6842 6710
6843@@ -291,6 +292,46 @@ static int do_quotactl(struct super_bloc 6711@@ -309,6 +310,46 @@ static int do_quotactl(struct super_bloc
6844 } 6712
6845 } 6713 #ifdef CONFIG_BLOCK
6846 6714
6847+#if defined(CONFIG_BLK_DEV_VROOT) || defined(CONFIG_BLK_DEV_VROOT_MODULE) 6715+#if defined(CONFIG_BLK_DEV_VROOT) || defined(CONFIG_BLK_DEV_VROOT_MODULE)
6848+ 6716+
@@ -6887,13 +6755,13 @@ diff -NurpP --minimal linux-3.4.57/fs/quota/quota.c linux-3.4.57-vs2.3.3.9/fs/qu
6887 /* Return 1 if 'cmd' will block on frozen filesystem */ 6755 /* Return 1 if 'cmd' will block on frozen filesystem */
6888 static int quotactl_cmd_write(int cmd) 6756 static int quotactl_cmd_write(int cmd)
6889 { 6757 {
6890@@ -323,6 +364,22 @@ static struct super_block *quotactl_bloc 6758@@ -343,6 +384,22 @@ static struct super_block *quotactl_bloc
6891 putname(tmp); 6759 putname(tmp);
6892 if (IS_ERR(bdev)) 6760 if (IS_ERR(bdev))
6893 return ERR_CAST(bdev); 6761 return ERR_CAST(bdev);
6894+#if defined(CONFIG_BLK_DEV_VROOT) || defined(CONFIG_BLK_DEV_VROOT_MODULE) 6762+#if defined(CONFIG_BLK_DEV_VROOT) || defined(CONFIG_BLK_DEV_VROOT_MODULE)
6895+ if (bdev && bdev->bd_inode && 6763+ if (bdev && bdev->bd_inode &&
6896+ imajor(bdev->bd_inode) == VROOT_MAJOR) { 6764+ imajor(bdev->bd_inode) == VROOT_MAJOR) {
6897+ struct block_device *bdnew = (void *)-EINVAL; 6765+ struct block_device *bdnew = (void *)-EINVAL;
6898+ 6766+
6899+ if (vroot_get_real_bdev) 6767+ if (vroot_get_real_bdev)
@@ -6910,366 +6778,9 @@ diff -NurpP --minimal linux-3.4.57/fs/quota/quota.c linux-3.4.57-vs2.3.3.9/fs/qu
6910 if (quotactl_cmd_write(cmd)) 6778 if (quotactl_cmd_write(cmd))
6911 sb = get_super_thawed(bdev); 6779 sb = get_super_thawed(bdev);
6912 else 6780 else
6913diff -NurpP --minimal linux-3.4.57/fs/reiserfs/file.c linux-3.4.57-vs2.3.3.9/fs/reiserfs/file.c 6781diff -NurpP --minimal linux-3.10.17/fs/stat.c linux-3.10.17-vs2.3.6.6/fs/stat.c
6914--- linux-3.4.57/fs/reiserfs/file.c 2012-05-21 16:07:26.000000000 +0000 6782--- linux-3.10.17/fs/stat.c 2013-05-31 13:45:25.000000000 +0000
6915+++ linux-3.4.57-vs2.3.3.9/fs/reiserfs/file.c 2012-05-21 16:15:05.000000000 +0000 6783+++ linux-3.10.17-vs2.3.6.6/fs/stat.c 2013-08-22 20:30:00.000000000 +0000
6916@@ -319,5 +319,6 @@ const struct inode_operations reiserfs_f
6917 .listxattr = reiserfs_listxattr,
6918 .removexattr = reiserfs_removexattr,
6919 .permission = reiserfs_permission,
6920+ .sync_flags = reiserfs_sync_flags,
6921 .get_acl = reiserfs_get_acl,
6922 };
6923diff -NurpP --minimal linux-3.4.57/fs/reiserfs/inode.c linux-3.4.57-vs2.3.3.9/fs/reiserfs/inode.c
6924--- linux-3.4.57/fs/reiserfs/inode.c 2013-08-13 14:13:34.000000000 +0000
6925+++ linux-3.4.57-vs2.3.3.9/fs/reiserfs/inode.c 2012-12-08 00:53:53.000000000 +0000
6926@@ -18,6 +18,7 @@
6927 #include <linux/writeback.h>
6928 #include <linux/quotaops.h>
6929 #include <linux/swap.h>
6930+#include <linux/vs_tag.h>
6931
6932 int reiserfs_commit_write(struct file *f, struct page *page,
6933 unsigned from, unsigned to);
6934@@ -1131,6 +1132,8 @@ static void init_inode(struct inode *ino
6935 struct buffer_head *bh;
6936 struct item_head *ih;
6937 __u32 rdev;
6938+ uid_t uid;
6939+ gid_t gid;
6940 //int version = ITEM_VERSION_1;
6941
6942 bh = PATH_PLAST_BUFFER(path);
6943@@ -1151,12 +1154,13 @@ static void init_inode(struct inode *ino
6944 (struct stat_data_v1 *)B_I_PITEM(bh, ih);
6945 unsigned long blocks;
6946
6947+ uid = sd_v1_uid(sd);
6948+ gid = sd_v1_gid(sd);
6949+
6950 set_inode_item_key_version(inode, KEY_FORMAT_3_5);
6951 set_inode_sd_version(inode, STAT_DATA_V1);
6952 inode->i_mode = sd_v1_mode(sd);
6953 set_nlink(inode, sd_v1_nlink(sd));
6954- inode->i_uid = sd_v1_uid(sd);
6955- inode->i_gid = sd_v1_gid(sd);
6956 inode->i_size = sd_v1_size(sd);
6957 inode->i_atime.tv_sec = sd_v1_atime(sd);
6958 inode->i_mtime.tv_sec = sd_v1_mtime(sd);
6959@@ -1198,11 +1202,12 @@ static void init_inode(struct inode *ino
6960 // (directories and symlinks)
6961 struct stat_data *sd = (struct stat_data *)B_I_PITEM(bh, ih);
6962
6963+ uid = sd_v2_uid(sd);
6964+ gid = sd_v2_gid(sd);
6965+
6966 inode->i_mode = sd_v2_mode(sd);
6967 set_nlink(inode, sd_v2_nlink(sd));
6968- inode->i_uid = sd_v2_uid(sd);
6969 inode->i_size = sd_v2_size(sd);
6970- inode->i_gid = sd_v2_gid(sd);
6971 inode->i_mtime.tv_sec = sd_v2_mtime(sd);
6972 inode->i_atime.tv_sec = sd_v2_atime(sd);
6973 inode->i_ctime.tv_sec = sd_v2_ctime(sd);
6974@@ -1232,6 +1237,10 @@ static void init_inode(struct inode *ino
6975 sd_attrs_to_i_attrs(sd_v2_attrs(sd), inode);
6976 }
6977
6978+ inode->i_uid = INOTAG_UID(DX_TAG(inode), uid, gid);
6979+ inode->i_gid = INOTAG_GID(DX_TAG(inode), uid, gid);
6980+ inode->i_tag = INOTAG_TAG(DX_TAG(inode), uid, gid, 0);
6981+
6982 pathrelse(path);
6983 if (S_ISREG(inode->i_mode)) {
6984 inode->i_op = &reiserfs_file_inode_operations;
6985@@ -1254,13 +1263,15 @@ static void init_inode(struct inode *ino
6986 static void inode2sd(void *sd, struct inode *inode, loff_t size)
6987 {
6988 struct stat_data *sd_v2 = (struct stat_data *)sd;
6989+ uid_t uid = TAGINO_UID(DX_TAG(inode), inode->i_uid, inode->i_tag);
6990+ gid_t gid = TAGINO_GID(DX_TAG(inode), inode->i_gid, inode->i_tag);
6991 __u16 flags;
6992
6993+ set_sd_v2_uid(sd_v2, uid);
6994+ set_sd_v2_gid(sd_v2, gid);
6995 set_sd_v2_mode(sd_v2, inode->i_mode);
6996 set_sd_v2_nlink(sd_v2, inode->i_nlink);
6997- set_sd_v2_uid(sd_v2, inode->i_uid);
6998 set_sd_v2_size(sd_v2, size);
6999- set_sd_v2_gid(sd_v2, inode->i_gid);
7000 set_sd_v2_mtime(sd_v2, inode->i_mtime.tv_sec);
7001 set_sd_v2_atime(sd_v2, inode->i_atime.tv_sec);
7002 set_sd_v2_ctime(sd_v2, inode->i_ctime.tv_sec);
7003@@ -2875,14 +2886,19 @@ int reiserfs_commit_write(struct file *f
7004 void sd_attrs_to_i_attrs(__u16 sd_attrs, struct inode *inode)
7005 {
7006 if (reiserfs_attrs(inode->i_sb)) {
7007- if (sd_attrs & REISERFS_SYNC_FL)
7008- inode->i_flags |= S_SYNC;
7009- else
7010- inode->i_flags &= ~S_SYNC;
7011 if (sd_attrs & REISERFS_IMMUTABLE_FL)
7012 inode->i_flags |= S_IMMUTABLE;
7013 else
7014 inode->i_flags &= ~S_IMMUTABLE;
7015+ if (sd_attrs & REISERFS_IXUNLINK_FL)
7016+ inode->i_flags |= S_IXUNLINK;
7017+ else
7018+ inode->i_flags &= ~S_IXUNLINK;
7019+
7020+ if (sd_attrs & REISERFS_SYNC_FL)
7021+ inode->i_flags |= S_SYNC;
7022+ else
7023+ inode->i_flags &= ~S_SYNC;
7024 if (sd_attrs & REISERFS_APPEND_FL)
7025 inode->i_flags |= S_APPEND;
7026 else
7027@@ -2895,6 +2911,15 @@ void sd_attrs_to_i_attrs(__u16 sd_attrs,
7028 REISERFS_I(inode)->i_flags |= i_nopack_mask;
7029 else
7030 REISERFS_I(inode)->i_flags &= ~i_nopack_mask;
7031+
7032+ if (sd_attrs & REISERFS_BARRIER_FL)
7033+ inode->i_vflags |= V_BARRIER;
7034+ else
7035+ inode->i_vflags &= ~V_BARRIER;
7036+ if (sd_attrs & REISERFS_COW_FL)
7037+ inode->i_vflags |= V_COW;
7038+ else
7039+ inode->i_vflags &= ~V_COW;
7040 }
7041 }
7042
7043@@ -2905,6 +2930,11 @@ void i_attrs_to_sd_attrs(struct inode *i
7044 *sd_attrs |= REISERFS_IMMUTABLE_FL;
7045 else
7046 *sd_attrs &= ~REISERFS_IMMUTABLE_FL;
7047+ if (inode->i_flags & S_IXUNLINK)
7048+ *sd_attrs |= REISERFS_IXUNLINK_FL;
7049+ else
7050+ *sd_attrs &= ~REISERFS_IXUNLINK_FL;
7051+
7052 if (inode->i_flags & S_SYNC)
7053 *sd_attrs |= REISERFS_SYNC_FL;
7054 else
7055@@ -2917,6 +2947,15 @@ void i_attrs_to_sd_attrs(struct inode *i
7056 *sd_attrs |= REISERFS_NOTAIL_FL;
7057 else
7058 *sd_attrs &= ~REISERFS_NOTAIL_FL;
7059+
7060+ if (inode->i_vflags & V_BARRIER)
7061+ *sd_attrs |= REISERFS_BARRIER_FL;
7062+ else
7063+ *sd_attrs &= ~REISERFS_BARRIER_FL;
7064+ if (inode->i_vflags & V_COW)
7065+ *sd_attrs |= REISERFS_COW_FL;
7066+ else
7067+ *sd_attrs &= ~REISERFS_COW_FL;
7068 }
7069 }
7070
7071@@ -3161,7 +3200,8 @@ int reiserfs_setattr(struct dentry *dent
7072 }
7073
7074 if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
7075- (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) {
7076+ (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid) ||
7077+ (ia_valid & ATTR_TAG && attr->ia_tag != inode->i_tag)) {
7078 struct reiserfs_transaction_handle th;
7079 int jbegin_count =
7080 2 *
7081@@ -3192,6 +3232,9 @@ int reiserfs_setattr(struct dentry *dent
7082 inode->i_uid = attr->ia_uid;
7083 if (attr->ia_valid & ATTR_GID)
7084 inode->i_gid = attr->ia_gid;
7085+ if ((attr->ia_valid & ATTR_TAG) &&
7086+ IS_TAGGED(inode))
7087+ inode->i_tag = attr->ia_tag;
7088 mark_inode_dirty(inode);
7089 error = journal_end(&th, inode->i_sb, jbegin_count);
7090 if (error)
7091diff -NurpP --minimal linux-3.4.57/fs/reiserfs/ioctl.c linux-3.4.57-vs2.3.3.9/fs/reiserfs/ioctl.c
7092--- linux-3.4.57/fs/reiserfs/ioctl.c 2012-05-21 16:07:27.000000000 +0000
7093+++ linux-3.4.57-vs2.3.3.9/fs/reiserfs/ioctl.c 2012-05-21 16:15:05.000000000 +0000
7094@@ -11,6 +11,21 @@
7095 #include <linux/pagemap.h>
7096 #include <linux/compat.h>
7097
7098+
7099+int reiserfs_sync_flags(struct inode *inode, int flags, int vflags)
7100+{
7101+ __u16 sd_attrs = 0;
7102+
7103+ inode->i_flags = flags;
7104+ inode->i_vflags = vflags;
7105+
7106+ i_attrs_to_sd_attrs(inode, &sd_attrs);
7107+ REISERFS_I(inode)->i_attrs = sd_attrs;
7108+ inode->i_ctime = CURRENT_TIME_SEC;
7109+ mark_inode_dirty(inode);
7110+ return 0;
7111+}
7112+
7113 /*
7114 * reiserfs_ioctl - handler for ioctl for inode
7115 * supported commands:
7116@@ -22,7 +37,7 @@
7117 long reiserfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
7118 {
7119 struct inode *inode = filp->f_path.dentry->d_inode;
7120- unsigned int flags;
7121+ unsigned int flags, oldflags;
7122 int err = 0;
7123
7124 reiserfs_write_lock(inode->i_sb);
7125@@ -47,6 +62,7 @@ long reiserfs_ioctl(struct file *filp, u
7126
7127 flags = REISERFS_I(inode)->i_attrs;
7128 i_attrs_to_sd_attrs(inode, (__u16 *) & flags);
7129+ flags &= REISERFS_FL_USER_VISIBLE;
7130 err = put_user(flags, (int __user *)arg);
7131 break;
7132 case REISERFS_IOC_SETFLAGS:{
7133@@ -67,6 +83,10 @@ long reiserfs_ioctl(struct file *filp, u
7134 err = -EFAULT;
7135 goto setflags_out;
7136 }
7137+ if (IS_BARRIER(inode)) {
7138+ vxwprintk_task(1, "messing with the barrier.");
7139+ return -EACCES;
7140+ }
7141 /*
7142 * Is it quota file? Do not allow user to mess with it
7143 */
7144@@ -91,6 +111,10 @@ long reiserfs_ioctl(struct file *filp, u
7145 goto setflags_out;
7146 }
7147 }
7148+
7149+ oldflags = REISERFS_I(inode)->i_attrs;
7150+ flags &= REISERFS_FL_USER_MODIFIABLE;
7151+ flags |= oldflags & ~REISERFS_FL_USER_MODIFIABLE;
7152 sd_attrs_to_i_attrs(flags, inode);
7153 REISERFS_I(inode)->i_attrs = flags;
7154 inode->i_ctime = CURRENT_TIME_SEC;
7155diff -NurpP --minimal linux-3.4.57/fs/reiserfs/namei.c linux-3.4.57-vs2.3.3.9/fs/reiserfs/namei.c
7156--- linux-3.4.57/fs/reiserfs/namei.c 2012-05-21 16:07:27.000000000 +0000
7157+++ linux-3.4.57-vs2.3.3.9/fs/reiserfs/namei.c 2012-05-21 16:15:05.000000000 +0000
7158@@ -18,6 +18,7 @@
7159 #include "acl.h"
7160 #include "xattr.h"
7161 #include <linux/quotaops.h>
7162+#include <linux/vs_tag.h>
7163
7164 #define INC_DIR_INODE_NLINK(i) if (i->i_nlink != 1) { inc_nlink(i); if (i->i_nlink >= REISERFS_LINK_MAX) set_nlink(i, 1); }
7165 #define DEC_DIR_INODE_NLINK(i) if (i->i_nlink != 1) drop_nlink(i);
7166@@ -362,6 +363,7 @@ static struct dentry *reiserfs_lookup(st
7167 if (retval == IO_ERROR) {
7168 return ERR_PTR(-EIO);
7169 }
7170+ dx_propagate_tag(nd, inode);
7171
7172 return d_splice_alias(inode, dentry);
7173 }
7174diff -NurpP --minimal linux-3.4.57/fs/reiserfs/reiserfs.h linux-3.4.57-vs2.3.3.9/fs/reiserfs/reiserfs.h
7175--- linux-3.4.57/fs/reiserfs/reiserfs.h 2012-05-21 16:07:27.000000000 +0000
7176+++ linux-3.4.57-vs2.3.3.9/fs/reiserfs/reiserfs.h 2012-05-21 17:19:33.000000000 +0000
7177@@ -544,6 +544,7 @@ enum reiserfs_mount_options {
7178 REISERFS_EXPOSE_PRIVROOT,
7179 REISERFS_BARRIER_NONE,
7180 REISERFS_BARRIER_FLUSH,
7181+ REISERFS_TAGGED,
7182
7183 /* Actions on error */
7184 REISERFS_ERROR_PANIC,
7185@@ -1543,6 +1544,11 @@ struct stat_data_v1 {
7186 #define REISERFS_COMPR_FL FS_COMPR_FL
7187 #define REISERFS_NOTAIL_FL FS_NOTAIL_FL
7188
7189+/* unfortunately reiserfs sdattr is only 16 bit */
7190+#define REISERFS_IXUNLINK_FL (FS_IXUNLINK_FL >> 16)
7191+#define REISERFS_BARRIER_FL (FS_BARRIER_FL >> 16)
7192+#define REISERFS_COW_FL (FS_COW_FL >> 16)
7193+
7194 /* persistent flags that file inherits from the parent directory */
7195 #define REISERFS_INHERIT_MASK ( REISERFS_IMMUTABLE_FL | \
7196 REISERFS_SYNC_FL | \
7197@@ -1552,6 +1558,9 @@ struct stat_data_v1 {
7198 REISERFS_COMPR_FL | \
7199 REISERFS_NOTAIL_FL )
7200
7201+#define REISERFS_FL_USER_VISIBLE 0x80FF
7202+#define REISERFS_FL_USER_MODIFIABLE 0x80FF
7203+
7204 /* Stat Data on disk (reiserfs version of UFS disk inode minus the
7205 address blocks) */
7206 struct stat_data {
7207@@ -2641,6 +2650,7 @@ static inline void reiserfs_update_sd(st
7208 void sd_attrs_to_i_attrs(__u16 sd_attrs, struct inode *inode);
7209 void i_attrs_to_sd_attrs(struct inode *inode, __u16 * sd_attrs);
7210 int reiserfs_setattr(struct dentry *dentry, struct iattr *attr);
7211+int reiserfs_sync_flags(struct inode *inode, int, int);
7212
7213 int __reiserfs_write_begin(struct page *page, unsigned from, unsigned len);
7214
7215diff -NurpP --minimal linux-3.4.57/fs/reiserfs/super.c linux-3.4.57-vs2.3.3.9/fs/reiserfs/super.c
7216--- linux-3.4.57/fs/reiserfs/super.c 2013-08-13 14:13:34.000000000 +0000
7217+++ linux-3.4.57-vs2.3.3.9/fs/reiserfs/super.c 2012-12-08 00:53:53.000000000 +0000
7218@@ -982,6 +982,14 @@ static int reiserfs_parse_options(struct
7219 {"user_xattr",.setmask = 1 << REISERFS_UNSUPPORTED_OPT},
7220 {"nouser_xattr",.clrmask = 1 << REISERFS_UNSUPPORTED_OPT},
7221 #endif
7222+#ifndef CONFIG_TAGGING_NONE
7223+ {"tagxid",.setmask = 1 << REISERFS_TAGGED},
7224+ {"tag",.setmask = 1 << REISERFS_TAGGED},
7225+ {"notag",.clrmask = 1 << REISERFS_TAGGED},
7226+#endif
7227+#ifdef CONFIG_PROPAGATE
7228+ {"tag",.arg_required = 'T',.values = NULL},
7229+#endif
7230 #ifdef CONFIG_REISERFS_FS_POSIX_ACL
7231 {"acl",.setmask = 1 << REISERFS_POSIXACL},
7232 {"noacl",.clrmask = 1 << REISERFS_POSIXACL},
7233@@ -1300,6 +1308,14 @@ static int reiserfs_remount(struct super
7234 handle_quota_files(s, qf_names, &qfmt);
7235 #endif
7236
7237+ if ((mount_options & (1 << REISERFS_TAGGED)) &&
7238+ !(s->s_flags & MS_TAGGED)) {
7239+ reiserfs_warning(s, "super-vs01",
7240+ "reiserfs: tagging not permitted on remount.");
7241+ err = -EINVAL;
7242+ goto out_err;
7243+ }
7244+
7245 handle_attrs(s);
7246
7247 /* Add options that are safe here */
7248@@ -1792,6 +1808,10 @@ static int reiserfs_fill_super(struct su
7249 goto error_unlocked;
7250 }
7251
7252+ /* map mount option tagxid */
7253+ if (REISERFS_SB(s)->s_mount_opt & (1 << REISERFS_TAGGED))
7254+ s->s_flags |= MS_TAGGED;
7255+
7256 rs = SB_DISK_SUPER_BLOCK(s);
7257 /* Let's do basic sanity check to verify that underlying device is not
7258 smaller than the filesystem. If the check fails then abort and scream,
7259diff -NurpP --minimal linux-3.4.57/fs/reiserfs/xattr.c linux-3.4.57-vs2.3.3.9/fs/reiserfs/xattr.c
7260--- linux-3.4.57/fs/reiserfs/xattr.c 2013-08-13 14:13:34.000000000 +0000
7261+++ linux-3.4.57-vs2.3.3.9/fs/reiserfs/xattr.c 2013-07-14 13:38:35.000000000 +0000
7262@@ -40,6 +40,7 @@
7263 #include <linux/errno.h>
7264 #include <linux/gfp.h>
7265 #include <linux/fs.h>
7266+#include <linux/mount.h>
7267 #include <linux/file.h>
7268 #include <linux/pagemap.h>
7269 #include <linux/xattr.h>
7270diff -NurpP --minimal linux-3.4.57/fs/stat.c linux-3.4.57-vs2.3.3.9/fs/stat.c
7271--- linux-3.4.57/fs/stat.c 2013-08-13 14:13:34.000000000 +0000
7272+++ linux-3.4.57-vs2.3.3.9/fs/stat.c 2012-10-22 13:09:53.000000000 +0000
7273@@ -26,6 +26,7 @@ void generic_fillattr(struct inode *inod 6784@@ -26,6 +26,7 @@ void generic_fillattr(struct inode *inod
7274 stat->nlink = inode->i_nlink; 6785 stat->nlink = inode->i_nlink;
7275 stat->uid = inode->i_uid; 6786 stat->uid = inode->i_uid;
@@ -7278,9 +6789,9 @@ diff -NurpP --minimal linux-3.4.57/fs/stat.c linux-3.4.57-vs2.3.3.9/fs/stat.c
7278 stat->rdev = inode->i_rdev; 6789 stat->rdev = inode->i_rdev;
7279 stat->size = i_size_read(inode); 6790 stat->size = i_size_read(inode);
7280 stat->atime = inode->i_atime; 6791 stat->atime = inode->i_atime;
7281diff -NurpP --minimal linux-3.4.57/fs/statfs.c linux-3.4.57-vs2.3.3.9/fs/statfs.c 6792diff -NurpP --minimal linux-3.10.17/fs/statfs.c linux-3.10.17-vs2.3.6.6/fs/statfs.c
7282--- linux-3.4.57/fs/statfs.c 2012-05-21 16:07:27.000000000 +0000 6793--- linux-3.10.17/fs/statfs.c 2013-10-25 15:17:43.000000000 +0000
7283+++ linux-3.4.57-vs2.3.3.9/fs/statfs.c 2012-05-21 16:15:05.000000000 +0000 6794+++ linux-3.10.17-vs2.3.6.6/fs/statfs.c 2013-10-26 18:03:16.000000000 +0000
7284@@ -7,6 +7,8 @@ 6795@@ -7,6 +7,8 @@
7285 #include <linux/statfs.h> 6796 #include <linux/statfs.h>
7286 #include <linux/security.h> 6797 #include <linux/security.h>
@@ -7299,19 +6810,19 @@ diff -NurpP --minimal linux-3.4.57/fs/statfs.c linux-3.4.57-vs2.3.3.9/fs/statfs.
7299 return retval; 6810 return retval;
7300 } 6811 }
7301 6812
7302diff -NurpP --minimal linux-3.4.57/fs/super.c linux-3.4.57-vs2.3.3.9/fs/super.c 6813diff -NurpP --minimal linux-3.10.17/fs/super.c linux-3.10.17-vs2.3.6.6/fs/super.c
7303--- linux-3.4.57/fs/super.c 2013-08-13 14:13:34.000000000 +0000 6814--- linux-3.10.17/fs/super.c 2013-10-25 15:17:43.000000000 +0000
7304+++ linux-3.4.57-vs2.3.3.9/fs/super.c 2013-08-13 17:07:36.000000000 +0000 6815+++ linux-3.10.17-vs2.3.6.6/fs/super.c 2013-08-22 20:30:00.000000000 +0000
7305@@ -33,6 +33,8 @@ 6816@@ -34,6 +34,8 @@
7306 #include <linux/rculist_bl.h>
7307 #include <linux/cleancache.h> 6817 #include <linux/cleancache.h>
7308 #include <linux/fsnotify.h> 6818 #include <linux/fsnotify.h>
6819 #include <linux/lockdep.h>
7309+#include <linux/magic.h> 6820+#include <linux/magic.h>
7310+#include <linux/vs_context.h> 6821+#include <linux/vs_context.h>
7311 #include "internal.h" 6822 #include "internal.h"
7312 6823
7313 6824
7314@@ -1133,6 +1135,13 @@ mount_fs(struct file_system_type *type, 6825@@ -1112,6 +1114,13 @@ mount_fs(struct file_system_type *type,
7315 WARN_ON(sb->s_bdi == &default_backing_dev_info); 6826 WARN_ON(sb->s_bdi == &default_backing_dev_info);
7316 sb->s_flags |= MS_BORN; 6827 sb->s_flags |= MS_BORN;
7317 6828
@@ -7325,10 +6836,10 @@ diff -NurpP --minimal linux-3.4.57/fs/super.c linux-3.4.57-vs2.3.3.9/fs/super.c
7325 error = security_sb_kern_mount(sb, flags, secdata); 6836 error = security_sb_kern_mount(sb, flags, secdata);
7326 if (error) 6837 if (error)
7327 goto out_sb; 6838 goto out_sb;
7328diff -NurpP --minimal linux-3.4.57/fs/sysfs/mount.c linux-3.4.57-vs2.3.3.9/fs/sysfs/mount.c 6839diff -NurpP --minimal linux-3.10.17/fs/sysfs/mount.c linux-3.10.17-vs2.3.6.6/fs/sysfs/mount.c
7329--- linux-3.4.57/fs/sysfs/mount.c 2012-05-21 16:07:27.000000000 +0000 6840--- linux-3.10.17/fs/sysfs/mount.c 2013-05-31 13:45:25.000000000 +0000
7330+++ linux-3.4.57-vs2.3.3.9/fs/sysfs/mount.c 2012-05-21 16:15:05.000000000 +0000 6841+++ linux-3.10.17-vs2.3.6.6/fs/sysfs/mount.c 2013-08-22 20:30:00.000000000 +0000
7331@@ -47,7 +47,7 @@ static int sysfs_fill_super(struct super 6842@@ -48,7 +48,7 @@ static int sysfs_fill_super(struct super
7332 6843
7333 sb->s_blocksize = PAGE_CACHE_SIZE; 6844 sb->s_blocksize = PAGE_CACHE_SIZE;
7334 sb->s_blocksize_bits = PAGE_CACHE_SHIFT; 6845 sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
@@ -7337,9 +6848,9 @@ diff -NurpP --minimal linux-3.4.57/fs/sysfs/mount.c linux-3.4.57-vs2.3.3.9/fs/sy
7337 sb->s_op = &sysfs_ops; 6848 sb->s_op = &sysfs_ops;
7338 sb->s_time_gran = 1; 6849 sb->s_time_gran = 1;
7339 6850
7340diff -NurpP --minimal linux-3.4.57/fs/utimes.c linux-3.4.57-vs2.3.3.9/fs/utimes.c 6851diff -NurpP --minimal linux-3.10.17/fs/utimes.c linux-3.10.17-vs2.3.6.6/fs/utimes.c
7341--- linux-3.4.57/fs/utimes.c 2011-05-22 14:17:54.000000000 +0000 6852--- linux-3.10.17/fs/utimes.c 2013-02-19 13:58:49.000000000 +0000
7342+++ linux-3.4.57-vs2.3.3.9/fs/utimes.c 2012-05-21 16:15:05.000000000 +0000 6853+++ linux-3.10.17-vs2.3.6.6/fs/utimes.c 2013-08-22 20:30:00.000000000 +0000
7343@@ -8,6 +8,8 @@ 6854@@ -8,6 +8,8 @@
7344 #include <linux/stat.h> 6855 #include <linux/stat.h>
7345 #include <linux/utime.h> 6856 #include <linux/utime.h>
@@ -7355,32 +6866,32 @@ diff -NurpP --minimal linux-3.4.57/fs/utimes.c linux-3.4.57-vs2.3.3.9/fs/utimes.
7355 struct iattr newattrs; 6866 struct iattr newattrs;
7356- struct inode *inode = path->dentry->d_inode; 6867- struct inode *inode = path->dentry->d_inode;
7357+ struct inode *inode; 6868+ struct inode *inode;
6869+
6870+ error = cow_check_and_break(path);
6871+ if (error)
6872+ goto out;
7358 6873
7359 error = mnt_want_write(path->mnt); 6874 error = mnt_want_write(path->mnt);
7360 if (error) 6875 if (error)
7361 goto out; 6876 goto out;
7362 6877
7363+ error = cow_check_and_break(path);
7364+ if (error)
7365+ goto mnt_drop_write_and_out;
7366+
7367+ inode = path->dentry->d_inode; 6878+ inode = path->dentry->d_inode;
7368+ 6879+
7369 if (times && times[0].tv_nsec == UTIME_NOW && 6880 if (times && times[0].tv_nsec == UTIME_NOW &&
7370 times[1].tv_nsec == UTIME_NOW) 6881 times[1].tv_nsec == UTIME_NOW)
7371 times = NULL; 6882 times = NULL;
7372diff -NurpP --minimal linux-3.4.57/fs/xattr.c linux-3.4.57-vs2.3.3.9/fs/xattr.c 6883diff -NurpP --minimal linux-3.10.17/fs/xattr.c linux-3.10.17-vs2.3.6.6/fs/xattr.c
7373--- linux-3.4.57/fs/xattr.c 2012-05-21 16:07:27.000000000 +0000 6884--- linux-3.10.17/fs/xattr.c 2013-02-19 13:58:49.000000000 +0000
7374+++ linux-3.4.57-vs2.3.3.9/fs/xattr.c 2012-05-21 16:15:05.000000000 +0000 6885+++ linux-3.10.17-vs2.3.6.6/fs/xattr.c 2013-08-22 20:30:00.000000000 +0000
7375@@ -20,6 +20,7 @@ 6886@@ -21,6 +21,7 @@
7376 #include <linux/fsnotify.h>
7377 #include <linux/audit.h> 6887 #include <linux/audit.h>
7378 #include <linux/vmalloc.h> 6888 #include <linux/vmalloc.h>
6889 #include <linux/posix_acl_xattr.h>
7379+#include <linux/mount.h> 6890+#include <linux/mount.h>
7380 6891
7381 #include <asm/uaccess.h> 6892 #include <asm/uaccess.h>
7382 6893
7383@@ -51,7 +52,7 @@ xattr_permission(struct inode *inode, co 6894@@ -52,7 +53,7 @@ xattr_permission(struct inode *inode, co
7384 * The trusted.* namespace can only be accessed by privileged users. 6895 * The trusted.* namespace can only be accessed by privileged users.
7385 */ 6896 */
7386 if (!strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN)) { 6897 if (!strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN)) {
@@ -7389,9 +6900,9 @@ diff -NurpP --minimal linux-3.4.57/fs/xattr.c linux-3.4.57-vs2.3.3.9/fs/xattr.c
7389 return (mask & MAY_WRITE) ? -EPERM : -ENODATA; 6900 return (mask & MAY_WRITE) ? -EPERM : -ENODATA;
7390 return 0; 6901 return 0;
7391 } 6902 }
7392diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_dinode.h linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_dinode.h 6903diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_dinode.h linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_dinode.h
7393--- linux-3.4.57/fs/xfs/xfs_dinode.h 2011-10-24 16:45:31.000000000 +0000 6904--- linux-3.10.17/fs/xfs/xfs_dinode.h 2013-07-14 17:01:29.000000000 +0000
7394+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_dinode.h 2012-05-21 16:15:05.000000000 +0000 6905+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_dinode.h 2013-08-22 20:30:00.000000000 +0000
7395@@ -51,7 +51,9 @@ typedef struct xfs_dinode { 6906@@ -51,7 +51,9 @@ typedef struct xfs_dinode {
7396 __be32 di_nlink; /* number of links to file */ 6907 __be32 di_nlink; /* number of links to file */
7397 __be16 di_projid_lo; /* lower part of owner's project id */ 6908 __be16 di_projid_lo; /* lower part of owner's project id */
@@ -7403,7 +6914,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_dinode.h linux-3.4.57-vs2.3.3.9/fs
7403 __be16 di_flushiter; /* incremented on flush */ 6914 __be16 di_flushiter; /* incremented on flush */
7404 xfs_timestamp_t di_atime; /* time last accessed */ 6915 xfs_timestamp_t di_atime; /* time last accessed */
7405 xfs_timestamp_t di_mtime; /* time last modified */ 6916 xfs_timestamp_t di_mtime; /* time last modified */
7406@@ -184,6 +186,8 @@ static inline void xfs_dinode_put_rdev(s 6917@@ -209,6 +211,8 @@ static inline void xfs_dinode_put_rdev(s
7407 #define XFS_DIFLAG_EXTSZINHERIT_BIT 12 /* inherit inode extent size */ 6918 #define XFS_DIFLAG_EXTSZINHERIT_BIT 12 /* inherit inode extent size */
7408 #define XFS_DIFLAG_NODEFRAG_BIT 13 /* do not reorganize/defragment */ 6919 #define XFS_DIFLAG_NODEFRAG_BIT 13 /* do not reorganize/defragment */
7409 #define XFS_DIFLAG_FILESTREAM_BIT 14 /* use filestream allocator */ 6920 #define XFS_DIFLAG_FILESTREAM_BIT 14 /* use filestream allocator */
@@ -7412,7 +6923,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_dinode.h linux-3.4.57-vs2.3.3.9/fs
7412 #define XFS_DIFLAG_REALTIME (1 << XFS_DIFLAG_REALTIME_BIT) 6923 #define XFS_DIFLAG_REALTIME (1 << XFS_DIFLAG_REALTIME_BIT)
7413 #define XFS_DIFLAG_PREALLOC (1 << XFS_DIFLAG_PREALLOC_BIT) 6924 #define XFS_DIFLAG_PREALLOC (1 << XFS_DIFLAG_PREALLOC_BIT)
7414 #define XFS_DIFLAG_NEWRTBM (1 << XFS_DIFLAG_NEWRTBM_BIT) 6925 #define XFS_DIFLAG_NEWRTBM (1 << XFS_DIFLAG_NEWRTBM_BIT)
7415@@ -199,6 +203,7 @@ static inline void xfs_dinode_put_rdev(s 6926@@ -224,6 +228,7 @@ static inline void xfs_dinode_put_rdev(s
7416 #define XFS_DIFLAG_EXTSZINHERIT (1 << XFS_DIFLAG_EXTSZINHERIT_BIT) 6927 #define XFS_DIFLAG_EXTSZINHERIT (1 << XFS_DIFLAG_EXTSZINHERIT_BIT)
7417 #define XFS_DIFLAG_NODEFRAG (1 << XFS_DIFLAG_NODEFRAG_BIT) 6928 #define XFS_DIFLAG_NODEFRAG (1 << XFS_DIFLAG_NODEFRAG_BIT)
7418 #define XFS_DIFLAG_FILESTREAM (1 << XFS_DIFLAG_FILESTREAM_BIT) 6929 #define XFS_DIFLAG_FILESTREAM (1 << XFS_DIFLAG_FILESTREAM_BIT)
@@ -7420,7 +6931,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_dinode.h linux-3.4.57-vs2.3.3.9/fs
7420 6931
7421 #ifdef CONFIG_XFS_RT 6932 #ifdef CONFIG_XFS_RT
7422 #define XFS_IS_REALTIME_INODE(ip) ((ip)->i_d.di_flags & XFS_DIFLAG_REALTIME) 6933 #define XFS_IS_REALTIME_INODE(ip) ((ip)->i_d.di_flags & XFS_DIFLAG_REALTIME)
7423@@ -211,6 +216,10 @@ static inline void xfs_dinode_put_rdev(s 6934@@ -236,6 +241,10 @@ static inline void xfs_dinode_put_rdev(s
7424 XFS_DIFLAG_IMMUTABLE | XFS_DIFLAG_APPEND | XFS_DIFLAG_SYNC | \ 6935 XFS_DIFLAG_IMMUTABLE | XFS_DIFLAG_APPEND | XFS_DIFLAG_SYNC | \
7425 XFS_DIFLAG_NOATIME | XFS_DIFLAG_NODUMP | XFS_DIFLAG_RTINHERIT | \ 6936 XFS_DIFLAG_NOATIME | XFS_DIFLAG_NODUMP | XFS_DIFLAG_RTINHERIT | \
7426 XFS_DIFLAG_PROJINHERIT | XFS_DIFLAG_NOSYMLINKS | XFS_DIFLAG_EXTSIZE | \ 6937 XFS_DIFLAG_PROJINHERIT | XFS_DIFLAG_NOSYMLINKS | XFS_DIFLAG_EXTSIZE | \
@@ -7432,9 +6943,9 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_dinode.h linux-3.4.57-vs2.3.3.9/fs
7432+#define XFS_DIVFLAG_COW 0x02 6943+#define XFS_DIVFLAG_COW 0x02
7433 6944
7434 #endif /* __XFS_DINODE_H__ */ 6945 #endif /* __XFS_DINODE_H__ */
7435diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_fs.h linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_fs.h 6946diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_fs.h linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_fs.h
7436--- linux-3.4.57/fs/xfs/xfs_fs.h 2011-10-24 16:45:31.000000000 +0000 6947--- linux-3.10.17/fs/xfs/xfs_fs.h 2013-07-14 17:01:29.000000000 +0000
7437+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_fs.h 2012-05-21 16:15:05.000000000 +0000 6948+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_fs.h 2013-08-22 20:30:00.000000000 +0000
7438@@ -67,6 +67,9 @@ struct fsxattr { 6949@@ -67,6 +67,9 @@ struct fsxattr {
7439 #define XFS_XFLAG_EXTSZINHERIT 0x00001000 /* inherit inode extent size */ 6950 #define XFS_XFLAG_EXTSZINHERIT 0x00001000 /* inherit inode extent size */
7440 #define XFS_XFLAG_NODEFRAG 0x00002000 /* do not defragment */ 6951 #define XFS_XFLAG_NODEFRAG 0x00002000 /* do not defragment */
@@ -7445,7 +6956,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_fs.h linux-3.4.57-vs2.3.3.9/fs/xfs
7445 #define XFS_XFLAG_HASATTR 0x80000000 /* no DIFLAG for this */ 6956 #define XFS_XFLAG_HASATTR 0x80000000 /* no DIFLAG for this */
7446 6957
7447 /* 6958 /*
7448@@ -302,7 +305,8 @@ typedef struct xfs_bstat { 6959@@ -304,7 +307,8 @@ typedef struct xfs_bstat {
7449 #define bs_projid bs_projid_lo /* (previously just bs_projid) */ 6960 #define bs_projid bs_projid_lo /* (previously just bs_projid) */
7450 __u16 bs_forkoff; /* inode fork offset in bytes */ 6961 __u16 bs_forkoff; /* inode fork offset in bytes */
7451 __u16 bs_projid_hi; /* higher part of project id */ 6962 __u16 bs_projid_hi; /* higher part of project id */
@@ -7455,35 +6966,35 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_fs.h linux-3.4.57-vs2.3.3.9/fs/xfs
7455 __u32 bs_dmevmask; /* DMIG event mask */ 6966 __u32 bs_dmevmask; /* DMIG event mask */
7456 __u16 bs_dmstate; /* DMIG state info */ 6967 __u16 bs_dmstate; /* DMIG state info */
7457 __u16 bs_aextents; /* attribute number of extents */ 6968 __u16 bs_aextents; /* attribute number of extents */
7458diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_ialloc.c linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_ialloc.c 6969diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_ialloc.c linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_ialloc.c
7459--- linux-3.4.57/fs/xfs/xfs_ialloc.c 2012-03-19 18:47:27.000000000 +0000 6970--- linux-3.10.17/fs/xfs/xfs_ialloc.c 2013-07-14 17:01:29.000000000 +0000
7460+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_ialloc.c 2012-05-21 16:15:05.000000000 +0000 6971+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_ialloc.c 2013-08-22 20:30:00.000000000 +0000
7461@@ -37,7 +37,6 @@ 6972@@ -39,7 +39,6 @@
7462 #include "xfs_error.h" 6973 #include "xfs_cksum.h"
7463 #include "xfs_bmap.h" 6974 #include "xfs_buf_item.h"
7464 6975
7465- 6976-
7466 /* 6977 /*
7467 * Allocation group level functions. 6978 * Allocation group level functions.
7468 */ 6979 */
7469diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.c linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_inode.c 6980diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_inode.c linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_inode.c
7470--- linux-3.4.57/fs/xfs/xfs_inode.c 2012-05-21 16:07:27.000000000 +0000 6981--- linux-3.10.17/fs/xfs/xfs_inode.c 2013-07-14 17:01:29.000000000 +0000
7471+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_inode.c 2012-05-21 16:15:05.000000000 +0000 6982+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_inode.c 2013-08-22 21:50:34.000000000 +0000
7472@@ -236,6 +236,7 @@ xfs_inotobp( 6983@@ -16,6 +16,7 @@
7473 return 0; 6984 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
7474 } 6985 */
7475 6986 #include <linux/log2.h>
7476+#include <linux/vs_tag.h> 6987+#include <linux/vs_tag.h>
7477 6988
7478 /* 6989 #include "xfs.h"
7479 * This routine is called to map an inode to the buffer containing 6990 #include "xfs_fs.h"
7480@@ -631,15 +632,25 @@ xfs_iformat_btree( 6991@@ -836,15 +837,25 @@ xfs_iformat_btree(
7481 STATIC void 6992 STATIC void
7482 xfs_dinode_from_disk( 6993 xfs_dinode_from_disk(
7483 xfs_icdinode_t *to, 6994 xfs_icdinode_t *to,
7484- xfs_dinode_t *from) 6995- xfs_dinode_t *from)
7485+ xfs_dinode_t *from, 6996+ xfs_dinode_t *from,
7486+ int tagged) 6997+ int tagged)
7487 { 6998 {
7488+ uint32_t uid, gid, tag; 6999+ uint32_t uid, gid, tag;
7489+ 7000+
@@ -7506,20 +7017,21 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.c linux-3.4.57-vs2.3.3.9/fs/
7506 to->di_nlink = be32_to_cpu(from->di_nlink); 7017 to->di_nlink = be32_to_cpu(from->di_nlink);
7507 to->di_projid_lo = be16_to_cpu(from->di_projid_lo); 7018 to->di_projid_lo = be16_to_cpu(from->di_projid_lo);
7508 to->di_projid_hi = be16_to_cpu(from->di_projid_hi); 7019 to->di_projid_hi = be16_to_cpu(from->di_projid_hi);
7509@@ -661,21 +672,26 @@ xfs_dinode_from_disk( 7020@@ -866,6 +877,7 @@ xfs_dinode_from_disk(
7510 to->di_dmevmask = be32_to_cpu(from->di_dmevmask); 7021 to->di_dmevmask = be32_to_cpu(from->di_dmevmask);
7511 to->di_dmstate = be16_to_cpu(from->di_dmstate); 7022 to->di_dmstate = be16_to_cpu(from->di_dmstate);
7512 to->di_flags = be16_to_cpu(from->di_flags); 7023 to->di_flags = be16_to_cpu(from->di_flags);
7513+ to->di_vflags = be16_to_cpu(from->di_vflags); 7024+ to->di_vflags = be16_to_cpu(from->di_vflags);
7514 to->di_gen = be32_to_cpu(from->di_gen); 7025 to->di_gen = be32_to_cpu(from->di_gen);
7515 }
7516 7026
7027 if (to->di_version == 3) {
7028@@ -883,15 +895,19 @@ xfs_dinode_from_disk(
7517 void 7029 void
7518 xfs_dinode_to_disk( 7030 xfs_dinode_to_disk(
7519 xfs_dinode_t *to, 7031 xfs_dinode_t *to,
7520- xfs_icdinode_t *from) 7032- xfs_icdinode_t *from)
7521+ xfs_icdinode_t *from, 7033+ xfs_icdinode_t *from,
7522+ int tagged) 7034+ int tagged)
7523 { 7035 {
7524 to->di_magic = cpu_to_be16(from->di_magic); 7036 to->di_magic = cpu_to_be16(from->di_magic);
7525 to->di_mode = cpu_to_be16(from->di_mode); 7037 to->di_mode = cpu_to_be16(from->di_mode);
@@ -7536,13 +7048,15 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.c linux-3.4.57-vs2.3.3.9/fs/
7536 to->di_nlink = cpu_to_be32(from->di_nlink); 7048 to->di_nlink = cpu_to_be32(from->di_nlink);
7537 to->di_projid_lo = cpu_to_be16(from->di_projid_lo); 7049 to->di_projid_lo = cpu_to_be16(from->di_projid_lo);
7538 to->di_projid_hi = cpu_to_be16(from->di_projid_hi); 7050 to->di_projid_hi = cpu_to_be16(from->di_projid_hi);
7539@@ -697,12 +713,14 @@ xfs_dinode_to_disk( 7051@@ -913,6 +929,7 @@ xfs_dinode_to_disk(
7540 to->di_dmevmask = cpu_to_be32(from->di_dmevmask); 7052 to->di_dmevmask = cpu_to_be32(from->di_dmevmask);
7541 to->di_dmstate = cpu_to_be16(from->di_dmstate); 7053 to->di_dmstate = cpu_to_be16(from->di_dmstate);
7542 to->di_flags = cpu_to_be16(from->di_flags); 7054 to->di_flags = cpu_to_be16(from->di_flags);
7543+ to->di_vflags = cpu_to_be16(from->di_vflags); 7055+ to->di_vflags = cpu_to_be16(from->di_vflags);
7544 to->di_gen = cpu_to_be32(from->di_gen); 7056 to->di_gen = cpu_to_be32(from->di_gen);
7545 } 7057
7058 if (from->di_version == 3) {
7059@@ -929,7 +946,8 @@ xfs_dinode_to_disk(
7546 7060
7547 STATIC uint 7061 STATIC uint
7548 _xfs_dic2xflags( 7062 _xfs_dic2xflags(
@@ -7552,7 +7066,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.c linux-3.4.57-vs2.3.3.9/fs/
7552 { 7066 {
7553 uint flags = 0; 7067 uint flags = 0;
7554 7068
7555@@ -713,6 +731,8 @@ _xfs_dic2xflags( 7069@@ -940,6 +958,8 @@ _xfs_dic2xflags(
7556 flags |= XFS_XFLAG_PREALLOC; 7070 flags |= XFS_XFLAG_PREALLOC;
7557 if (di_flags & XFS_DIFLAG_IMMUTABLE) 7071 if (di_flags & XFS_DIFLAG_IMMUTABLE)
7558 flags |= XFS_XFLAG_IMMUTABLE; 7072 flags |= XFS_XFLAG_IMMUTABLE;
@@ -7561,7 +7075,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.c linux-3.4.57-vs2.3.3.9/fs/
7561 if (di_flags & XFS_DIFLAG_APPEND) 7075 if (di_flags & XFS_DIFLAG_APPEND)
7562 flags |= XFS_XFLAG_APPEND; 7076 flags |= XFS_XFLAG_APPEND;
7563 if (di_flags & XFS_DIFLAG_SYNC) 7077 if (di_flags & XFS_DIFLAG_SYNC)
7564@@ -737,6 +757,10 @@ _xfs_dic2xflags( 7078@@ -964,6 +984,10 @@ _xfs_dic2xflags(
7565 flags |= XFS_XFLAG_FILESTREAM; 7079 flags |= XFS_XFLAG_FILESTREAM;
7566 } 7080 }
7567 7081
@@ -7572,7 +7086,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.c linux-3.4.57-vs2.3.3.9/fs/
7572 return flags; 7086 return flags;
7573 } 7087 }
7574 7088
7575@@ -746,7 +770,7 @@ xfs_ip2xflags( 7089@@ -973,7 +997,7 @@ xfs_ip2xflags(
7576 { 7090 {
7577 xfs_icdinode_t *dic = &ip->i_d; 7091 xfs_icdinode_t *dic = &ip->i_d;
7578 7092
@@ -7581,7 +7095,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.c linux-3.4.57-vs2.3.3.9/fs/
7581 (XFS_IFORK_Q(ip) ? XFS_XFLAG_HASATTR : 0); 7095 (XFS_IFORK_Q(ip) ? XFS_XFLAG_HASATTR : 0);
7582 } 7096 }
7583 7097
7584@@ -754,7 +778,8 @@ uint 7098@@ -981,7 +1005,8 @@ uint
7585 xfs_dic2xflags( 7099 xfs_dic2xflags(
7586 xfs_dinode_t *dip) 7100 xfs_dinode_t *dip)
7587 { 7101 {
@@ -7591,15 +7105,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.c linux-3.4.57-vs2.3.3.9/fs/
7591 (XFS_DFORK_Q(dip) ? XFS_XFLAG_HASATTR : 0); 7105 (XFS_DFORK_Q(dip) ? XFS_XFLAG_HASATTR : 0);
7592 } 7106 }
7593 7107
7594@@ -787,7 +812,6 @@ xfs_iread( 7108@@ -1072,7 +1097,8 @@ xfs_iread(
7595 if (error)
7596 return error;
7597 dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset);
7598-
7599 /*
7600 * If we got something that isn't an inode it means someone
7601 * (nfs or dmi) has a stale handle.
7602@@ -810,7 +834,8 @@ xfs_iread(
7603 * Otherwise, just get the truly permanent information. 7109 * Otherwise, just get the truly permanent information.
7604 */ 7110 */
7605 if (dip->di_mode) { 7111 if (dip->di_mode) {
@@ -7609,7 +7115,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.c linux-3.4.57-vs2.3.3.9/fs/
7609 error = xfs_iformat(ip, dip); 7115 error = xfs_iformat(ip, dip);
7610 if (error) { 7116 if (error) {
7611 #ifdef DEBUG 7117 #ifdef DEBUG
7612@@ -998,6 +1023,7 @@ xfs_ialloc( 7118@@ -1270,6 +1296,7 @@ xfs_ialloc(
7613 ASSERT(ip->i_d.di_nlink == nlink); 7119 ASSERT(ip->i_d.di_nlink == nlink);
7614 ip->i_d.di_uid = current_fsuid(); 7120 ip->i_d.di_uid = current_fsuid();
7615 ip->i_d.di_gid = current_fsgid(); 7121 ip->i_d.di_gid = current_fsgid();
@@ -7617,15 +7123,15 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.c linux-3.4.57-vs2.3.3.9/fs/
7617 xfs_set_projid(ip, prid); 7123 xfs_set_projid(ip, prid);
7618 memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); 7124 memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad));
7619 7125
7620@@ -1057,6 +1083,7 @@ xfs_ialloc( 7126@@ -1329,6 +1356,7 @@ xfs_ialloc(
7621 ip->i_d.di_dmevmask = 0; 7127 ip->i_d.di_dmevmask = 0;
7622 ip->i_d.di_dmstate = 0; 7128 ip->i_d.di_dmstate = 0;
7623 ip->i_d.di_flags = 0; 7129 ip->i_d.di_flags = 0;
7624+ ip->i_d.di_vflags = 0; 7130+ ip->i_d.di_vflags = 0;
7625 flags = XFS_ILOG_CORE; 7131
7626 switch (mode & S_IFMT) { 7132 if (ip->i_d.di_version == 3) {
7627 case S_IFIFO: 7133 ASSERT(ip->i_d.di_ino == ino);
7628@@ -1725,6 +1752,7 @@ xfs_ifree( 7134@@ -2052,6 +2080,7 @@ xfs_ifree(
7629 } 7135 }
7630 ip->i_d.di_mode = 0; /* mark incore inode as free */ 7136 ip->i_d.di_mode = 0; /* mark incore inode as free */
7631 ip->i_d.di_flags = 0; 7137 ip->i_d.di_flags = 0;
@@ -7633,7 +7139,15 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.c linux-3.4.57-vs2.3.3.9/fs/
7633 ip->i_d.di_dmevmask = 0; 7139 ip->i_d.di_dmevmask = 0;
7634 ip->i_d.di_forkoff = 0; /* mark the attr fork not in use */ 7140 ip->i_d.di_forkoff = 0; /* mark the attr fork not in use */
7635 ip->i_d.di_format = XFS_DINODE_FMT_EXTENTS; 7141 ip->i_d.di_format = XFS_DINODE_FMT_EXTENTS;
7636@@ -2598,7 +2626,8 @@ xfs_iflush_int( 7142@@ -2219,7 +2248,6 @@ xfs_iroot_realloc(
7143 return;
7144 }
7145
7146-
7147 /*
7148 * This is called when the amount of space needed for if_data
7149 * is increased or decreased. The change in size is indicated by
7150@@ -2899,7 +2927,8 @@ xfs_iflush_int(
7637 * because if the inode is dirty at all the core must 7151 * because if the inode is dirty at all the core must
7638 * be. 7152 * be.
7639 */ 7153 */
@@ -7643,9 +7157,9 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.c linux-3.4.57-vs2.3.3.9/fs/
7643 7157
7644 /* Wrap, we never let the log put out DI_MAX_FLUSH */ 7158 /* Wrap, we never let the log put out DI_MAX_FLUSH */
7645 if (ip->i_d.di_flushiter == DI_MAX_FLUSH) 7159 if (ip->i_d.di_flushiter == DI_MAX_FLUSH)
7646diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.h linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_inode.h 7160diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_inode.h linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_inode.h
7647--- linux-3.4.57/fs/xfs/xfs_inode.h 2012-05-21 16:07:27.000000000 +0000 7161--- linux-3.10.17/fs/xfs/xfs_inode.h 2013-07-14 17:01:30.000000000 +0000
7648+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_inode.h 2012-05-21 16:15:05.000000000 +0000 7162+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_inode.h 2013-08-22 20:30:00.000000000 +0000
7649@@ -134,7 +134,9 @@ typedef struct xfs_icdinode { 7163@@ -134,7 +134,9 @@ typedef struct xfs_icdinode {
7650 __uint32_t di_nlink; /* number of links to file */ 7164 __uint32_t di_nlink; /* number of links to file */
7651 __uint16_t di_projid_lo; /* lower part of owner's project id */ 7165 __uint16_t di_projid_lo; /* lower part of owner's project id */
@@ -7657,19 +7171,19 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_inode.h linux-3.4.57-vs2.3.3.9/fs/
7657 __uint16_t di_flushiter; /* incremented on flush */ 7171 __uint16_t di_flushiter; /* incremented on flush */
7658 xfs_ictimestamp_t di_atime; /* time last accessed */ 7172 xfs_ictimestamp_t di_atime; /* time last accessed */
7659 xfs_ictimestamp_t di_mtime; /* time last modified */ 7173 xfs_ictimestamp_t di_mtime; /* time last modified */
7660@@ -565,7 +567,7 @@ int xfs_itobp(struct xfs_mount *, struc 7174@@ -583,7 +585,7 @@ int xfs_iread(struct xfs_mount *, struc
7661 int xfs_iread(struct xfs_mount *, struct xfs_trans *,
7662 struct xfs_inode *, uint); 7175 struct xfs_inode *, uint);
7176 void xfs_dinode_calc_crc(struct xfs_mount *, struct xfs_dinode *);
7663 void xfs_dinode_to_disk(struct xfs_dinode *, 7177 void xfs_dinode_to_disk(struct xfs_dinode *,
7664- struct xfs_icdinode *); 7178- struct xfs_icdinode *);
7665+ struct xfs_icdinode *, int); 7179+ struct xfs_icdinode *, int);
7666 void xfs_idestroy_fork(struct xfs_inode *, int); 7180 void xfs_idestroy_fork(struct xfs_inode *, int);
7667 void xfs_idata_realloc(struct xfs_inode *, int, int); 7181 void xfs_idata_realloc(struct xfs_inode *, int, int);
7668 void xfs_iroot_realloc(struct xfs_inode *, int, int); 7182 void xfs_iroot_realloc(struct xfs_inode *, int, int);
7669diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_ioctl.c linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_ioctl.c 7183diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_ioctl.c linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_ioctl.c
7670--- linux-3.4.57/fs/xfs/xfs_ioctl.c 2012-05-21 16:07:27.000000000 +0000 7184--- linux-3.10.17/fs/xfs/xfs_ioctl.c 2013-07-14 17:01:30.000000000 +0000
7671+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_ioctl.c 2012-05-21 16:15:05.000000000 +0000 7185+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_ioctl.c 2013-08-22 20:30:00.000000000 +0000
7672@@ -28,7 +28,7 @@ 7186@@ -26,7 +26,7 @@
7673 #include "xfs_bmap_btree.h" 7187 #include "xfs_bmap_btree.h"
7674 #include "xfs_dinode.h" 7188 #include "xfs_dinode.h"
7675 #include "xfs_inode.h" 7189 #include "xfs_inode.h"
@@ -7678,7 +7192,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_ioctl.c linux-3.4.57-vs2.3.3.9/fs/
7678 #include "xfs_rtalloc.h" 7192 #include "xfs_rtalloc.h"
7679 #include "xfs_itable.h" 7193 #include "xfs_itable.h"
7680 #include "xfs_error.h" 7194 #include "xfs_error.h"
7681@@ -750,6 +750,10 @@ xfs_merge_ioc_xflags( 7195@@ -769,6 +769,10 @@ xfs_merge_ioc_xflags(
7682 xflags |= XFS_XFLAG_IMMUTABLE; 7196 xflags |= XFS_XFLAG_IMMUTABLE;
7683 else 7197 else
7684 xflags &= ~XFS_XFLAG_IMMUTABLE; 7198 xflags &= ~XFS_XFLAG_IMMUTABLE;
@@ -7689,7 +7203,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_ioctl.c linux-3.4.57-vs2.3.3.9/fs/
7689 if (flags & FS_APPEND_FL) 7203 if (flags & FS_APPEND_FL)
7690 xflags |= XFS_XFLAG_APPEND; 7204 xflags |= XFS_XFLAG_APPEND;
7691 else 7205 else
7692@@ -778,6 +782,8 @@ xfs_di2lxflags( 7206@@ -797,6 +801,8 @@ xfs_di2lxflags(
7693 7207
7694 if (di_flags & XFS_DIFLAG_IMMUTABLE) 7208 if (di_flags & XFS_DIFLAG_IMMUTABLE)
7695 flags |= FS_IMMUTABLE_FL; 7209 flags |= FS_IMMUTABLE_FL;
@@ -7698,7 +7212,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_ioctl.c linux-3.4.57-vs2.3.3.9/fs/
7698 if (di_flags & XFS_DIFLAG_APPEND) 7212 if (di_flags & XFS_DIFLAG_APPEND)
7699 flags |= FS_APPEND_FL; 7213 flags |= FS_APPEND_FL;
7700 if (di_flags & XFS_DIFLAG_SYNC) 7214 if (di_flags & XFS_DIFLAG_SYNC)
7701@@ -838,6 +844,8 @@ xfs_set_diflags( 7215@@ -857,6 +863,8 @@ xfs_set_diflags(
7702 di_flags = (ip->i_d.di_flags & XFS_DIFLAG_PREALLOC); 7216 di_flags = (ip->i_d.di_flags & XFS_DIFLAG_PREALLOC);
7703 if (xflags & XFS_XFLAG_IMMUTABLE) 7217 if (xflags & XFS_XFLAG_IMMUTABLE)
7704 di_flags |= XFS_DIFLAG_IMMUTABLE; 7218 di_flags |= XFS_DIFLAG_IMMUTABLE;
@@ -7707,7 +7221,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_ioctl.c linux-3.4.57-vs2.3.3.9/fs/
7707 if (xflags & XFS_XFLAG_APPEND) 7221 if (xflags & XFS_XFLAG_APPEND)
7708 di_flags |= XFS_DIFLAG_APPEND; 7222 di_flags |= XFS_DIFLAG_APPEND;
7709 if (xflags & XFS_XFLAG_SYNC) 7223 if (xflags & XFS_XFLAG_SYNC)
7710@@ -880,6 +888,10 @@ xfs_diflags_to_linux( 7224@@ -899,6 +907,10 @@ xfs_diflags_to_linux(
7711 inode->i_flags |= S_IMMUTABLE; 7225 inode->i_flags |= S_IMMUTABLE;
7712 else 7226 else
7713 inode->i_flags &= ~S_IMMUTABLE; 7227 inode->i_flags &= ~S_IMMUTABLE;
@@ -7718,7 +7232,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_ioctl.c linux-3.4.57-vs2.3.3.9/fs/
7718 if (xflags & XFS_XFLAG_APPEND) 7232 if (xflags & XFS_XFLAG_APPEND)
7719 inode->i_flags |= S_APPEND; 7233 inode->i_flags |= S_APPEND;
7720 else 7234 else
7721@@ -1372,10 +1384,18 @@ xfs_file_ioctl( 7235@@ -1403,10 +1415,18 @@ xfs_file_ioctl(
7722 case XFS_IOC_FSGETXATTRA: 7236 case XFS_IOC_FSGETXATTRA:
7723 return xfs_ioc_fsgetxattr(ip, 1, arg); 7237 return xfs_ioc_fsgetxattr(ip, 1, arg);
7724 case XFS_IOC_FSSETXATTR: 7238 case XFS_IOC_FSSETXATTR:
@@ -7737,9 +7251,9 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_ioctl.c linux-3.4.57-vs2.3.3.9/fs/
7737 return xfs_ioc_setxflags(ip, filp, arg); 7251 return xfs_ioc_setxflags(ip, filp, arg);
7738 7252
7739 case XFS_IOC_FSSETDM: { 7253 case XFS_IOC_FSSETDM: {
7740diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_ioctl.h linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_ioctl.h 7254diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_ioctl.h linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_ioctl.h
7741--- linux-3.4.57/fs/xfs/xfs_ioctl.h 2011-10-24 16:45:31.000000000 +0000 7255--- linux-3.10.17/fs/xfs/xfs_ioctl.h 2012-12-11 03:30:57.000000000 +0000
7742+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_ioctl.h 2012-05-21 16:15:05.000000000 +0000 7256+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_ioctl.h 2013-08-22 20:30:00.000000000 +0000
7743@@ -70,6 +70,12 @@ xfs_handle_to_dentry( 7257@@ -70,6 +70,12 @@ xfs_handle_to_dentry(
7744 void __user *uhandle, 7258 void __user *uhandle,
7745 u32 hlen); 7259 u32 hlen);
@@ -7753,10 +7267,10 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_ioctl.h linux-3.4.57-vs2.3.3.9/fs/
7753 extern long 7267 extern long
7754 xfs_file_ioctl( 7268 xfs_file_ioctl(
7755 struct file *filp, 7269 struct file *filp,
7756diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_iops.c linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_iops.c 7270diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_iops.c linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_iops.c
7757--- linux-3.4.57/fs/xfs/xfs_iops.c 2013-08-13 14:13:35.000000000 +0000 7271--- linux-3.10.17/fs/xfs/xfs_iops.c 2013-07-14 17:01:30.000000000 +0000
7758+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_iops.c 2013-07-14 13:38:35.000000000 +0000 7272+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_iops.c 2013-08-22 20:30:00.000000000 +0000
7759@@ -30,6 +30,7 @@ 7273@@ -28,6 +28,7 @@
7760 #include "xfs_bmap_btree.h" 7274 #include "xfs_bmap_btree.h"
7761 #include "xfs_dinode.h" 7275 #include "xfs_dinode.h"
7762 #include "xfs_inode.h" 7276 #include "xfs_inode.h"
@@ -7764,7 +7278,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_iops.c linux-3.4.57-vs2.3.3.9/fs/x
7764 #include "xfs_bmap.h" 7278 #include "xfs_bmap.h"
7765 #include "xfs_rtalloc.h" 7279 #include "xfs_rtalloc.h"
7766 #include "xfs_error.h" 7280 #include "xfs_error.h"
7767@@ -49,6 +50,7 @@ 7281@@ -47,6 +48,7 @@
7768 #include <linux/security.h> 7282 #include <linux/security.h>
7769 #include <linux/fiemap.h> 7283 #include <linux/fiemap.h>
7770 #include <linux/slab.h> 7284 #include <linux/slab.h>
@@ -7772,7 +7286,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_iops.c linux-3.4.57-vs2.3.3.9/fs/x
7772 7286
7773 static int 7287 static int
7774 xfs_initxattrs( 7288 xfs_initxattrs(
7775@@ -424,6 +426,7 @@ xfs_vn_getattr( 7289@@ -422,6 +424,7 @@ xfs_vn_getattr(
7776 stat->nlink = ip->i_d.di_nlink; 7290 stat->nlink = ip->i_d.di_nlink;
7777 stat->uid = ip->i_d.di_uid; 7291 stat->uid = ip->i_d.di_uid;
7778 stat->gid = ip->i_d.di_gid; 7292 stat->gid = ip->i_d.di_gid;
@@ -7780,23 +7294,23 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_iops.c linux-3.4.57-vs2.3.3.9/fs/x
7780 stat->ino = ip->i_ino; 7294 stat->ino = ip->i_ino;
7781 stat->atime = inode->i_atime; 7295 stat->atime = inode->i_atime;
7782 stat->mtime = inode->i_mtime; 7296 stat->mtime = inode->i_mtime;
7783@@ -1013,6 +1016,7 @@ static const struct inode_operations xfs 7297@@ -1054,6 +1057,7 @@ static const struct inode_operations xfs
7784 .removexattr = generic_removexattr,
7785 .listxattr = xfs_vn_listxattr, 7298 .listxattr = xfs_vn_listxattr,
7786 .fiemap = xfs_vn_fiemap, 7299 .fiemap = xfs_vn_fiemap,
7300 .update_time = xfs_vn_update_time,
7787+ .sync_flags = xfs_sync_flags, 7301+ .sync_flags = xfs_sync_flags,
7788 }; 7302 };
7789 7303
7790 static const struct inode_operations xfs_dir_inode_operations = { 7304 static const struct inode_operations xfs_dir_inode_operations = {
7791@@ -1038,6 +1042,7 @@ static const struct inode_operations xfs 7305@@ -1080,6 +1084,7 @@ static const struct inode_operations xfs
7792 .getxattr = generic_getxattr,
7793 .removexattr = generic_removexattr, 7306 .removexattr = generic_removexattr,
7794 .listxattr = xfs_vn_listxattr, 7307 .listxattr = xfs_vn_listxattr,
7308 .update_time = xfs_vn_update_time,
7795+ .sync_flags = xfs_sync_flags, 7309+ .sync_flags = xfs_sync_flags,
7796 }; 7310 };
7797 7311
7798 static const struct inode_operations xfs_dir_ci_inode_operations = { 7312 static const struct inode_operations xfs_dir_ci_inode_operations = {
7799@@ -1087,6 +1092,10 @@ xfs_diflags_to_iflags( 7313@@ -1131,6 +1136,10 @@ xfs_diflags_to_iflags(
7800 inode->i_flags |= S_IMMUTABLE; 7314 inode->i_flags |= S_IMMUTABLE;
7801 else 7315 else
7802 inode->i_flags &= ~S_IMMUTABLE; 7316 inode->i_flags &= ~S_IMMUTABLE;
@@ -7807,7 +7321,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_iops.c linux-3.4.57-vs2.3.3.9/fs/x
7807 if (ip->i_d.di_flags & XFS_DIFLAG_APPEND) 7321 if (ip->i_d.di_flags & XFS_DIFLAG_APPEND)
7808 inode->i_flags |= S_APPEND; 7322 inode->i_flags |= S_APPEND;
7809 else 7323 else
7810@@ -1099,6 +1108,15 @@ xfs_diflags_to_iflags( 7324@@ -1143,6 +1152,15 @@ xfs_diflags_to_iflags(
7811 inode->i_flags |= S_NOATIME; 7325 inode->i_flags |= S_NOATIME;
7812 else 7326 else
7813 inode->i_flags &= ~S_NOATIME; 7327 inode->i_flags &= ~S_NOATIME;
@@ -7823,7 +7337,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_iops.c linux-3.4.57-vs2.3.3.9/fs/x
7823 } 7337 }
7824 7338
7825 /* 7339 /*
7826@@ -1130,6 +1148,7 @@ xfs_setup_inode( 7340@@ -1174,6 +1192,7 @@ xfs_setup_inode(
7827 set_nlink(inode, ip->i_d.di_nlink); 7341 set_nlink(inode, ip->i_d.di_nlink);
7828 inode->i_uid = ip->i_d.di_uid; 7342 inode->i_uid = ip->i_d.di_uid;
7829 inode->i_gid = ip->i_d.di_gid; 7343 inode->i_gid = ip->i_d.di_gid;
@@ -7831,9 +7345,9 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_iops.c linux-3.4.57-vs2.3.3.9/fs/x
7831 7345
7832 switch (inode->i_mode & S_IFMT) { 7346 switch (inode->i_mode & S_IFMT) {
7833 case S_IFBLK: 7347 case S_IFBLK:
7834diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_itable.c linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_itable.c 7348diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_itable.c linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_itable.c
7835--- linux-3.4.57/fs/xfs/xfs_itable.c 2012-05-21 16:07:27.000000000 +0000 7349--- linux-3.10.17/fs/xfs/xfs_itable.c 2013-02-19 13:58:49.000000000 +0000
7836+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_itable.c 2012-05-21 16:15:05.000000000 +0000 7350+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_itable.c 2013-08-22 20:30:00.000000000 +0000
7837@@ -97,6 +97,7 @@ xfs_bulkstat_one_int( 7351@@ -97,6 +97,7 @@ xfs_bulkstat_one_int(
7838 buf->bs_mode = dic->di_mode; 7352 buf->bs_mode = dic->di_mode;
7839 buf->bs_uid = dic->di_uid; 7353 buf->bs_uid = dic->di_uid;
@@ -7842,10 +7356,10 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_itable.c linux-3.4.57-vs2.3.3.9/fs
7842 buf->bs_size = dic->di_size; 7356 buf->bs_size = dic->di_size;
7843 buf->bs_atime.tv_sec = dic->di_atime.t_sec; 7357 buf->bs_atime.tv_sec = dic->di_atime.t_sec;
7844 buf->bs_atime.tv_nsec = dic->di_atime.t_nsec; 7358 buf->bs_atime.tv_nsec = dic->di_atime.t_nsec;
7845diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_linux.h linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_linux.h 7359diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_linux.h linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_linux.h
7846--- linux-3.4.57/fs/xfs/xfs_linux.h 2011-10-24 16:45:31.000000000 +0000 7360--- linux-3.10.17/fs/xfs/xfs_linux.h 2013-07-14 17:01:30.000000000 +0000
7847+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_linux.h 2012-05-21 16:15:05.000000000 +0000 7361+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_linux.h 2013-08-22 20:30:00.000000000 +0000
7848@@ -121,6 +121,7 @@ 7362@@ -124,6 +124,7 @@
7849 7363
7850 #define current_cpu() (raw_smp_processor_id()) 7364 #define current_cpu() (raw_smp_processor_id())
7851 #define current_pid() (current->pid) 7365 #define current_pid() (current->pid)
@@ -7853,23 +7367,22 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_linux.h linux-3.4.57-vs2.3.3.9/fs/
7853 #define current_test_flags(f) (current->flags & (f)) 7367 #define current_test_flags(f) (current->flags & (f))
7854 #define current_set_flags_nested(sp, f) \ 7368 #define current_set_flags_nested(sp, f) \
7855 (*(sp) = current->flags, current->flags |= (f)) 7369 (*(sp) = current->flags, current->flags |= (f))
7856diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_log_recover.c linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_log_recover.c 7370diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_log_recover.c linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_log_recover.c
7857--- linux-3.4.57/fs/xfs/xfs_log_recover.c 2013-08-13 14:13:35.000000000 +0000 7371--- linux-3.10.17/fs/xfs/xfs_log_recover.c 2013-07-14 17:01:31.000000000 +0000
7858+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_log_recover.c 2012-11-18 23:52:29.000000000 +0000 7372+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_log_recover.c 2013-08-22 21:48:01.000000000 +0000
7859@@ -2344,7 +2344,8 @@ xlog_recover_inode_pass2( 7373@@ -2662,7 +2662,7 @@ xlog_recover_inode_pass2(
7860 } 7374 }
7861 7375
7862 /* The core is in in-core format */ 7376 /* The core is in in-core format */
7863- xfs_dinode_to_disk(dip, item->ri_buf[1].i_addr); 7377- xfs_dinode_to_disk(dip, dicp);
7864+ xfs_dinode_to_disk(dip, item->ri_buf[1].i_addr, 7378+ xfs_dinode_to_disk(dip, dicp, mp->m_flags & XFS_MOUNT_TAGGED);
7865+ mp->m_flags & XFS_MOUNT_TAGGED);
7866 7379
7867 /* the rest is in on-disk format */ 7380 /* the rest is in on-disk format */
7868 if (item->ri_buf[1].i_len > sizeof(struct xfs_icdinode)) { 7381 if (item->ri_buf[1].i_len > isize) {
7869diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_mount.h linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_mount.h 7382diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_mount.h linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_mount.h
7870--- linux-3.4.57/fs/xfs/xfs_mount.h 2012-05-21 16:07:28.000000000 +0000 7383--- linux-3.10.17/fs/xfs/xfs_mount.h 2013-07-14 17:01:31.000000000 +0000
7871+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_mount.h 2012-05-21 16:15:05.000000000 +0000 7384+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_mount.h 2013-08-22 20:30:00.000000000 +0000
7872@@ -251,6 +251,7 @@ typedef struct xfs_mount { 7385@@ -253,6 +253,7 @@ typedef struct xfs_mount {
7873 allocator */ 7386 allocator */
7874 #define XFS_MOUNT_NOATTR2 (1ULL << 25) /* disable use of attr2 format */ 7387 #define XFS_MOUNT_NOATTR2 (1ULL << 25) /* disable use of attr2 format */
7875 7388
@@ -7877,10 +7390,10 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_mount.h linux-3.4.57-vs2.3.3.9/fs/
7877 7390
7878 /* 7391 /*
7879 * Default minimum read and write sizes. 7392 * Default minimum read and write sizes.
7880diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_super.c linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_super.c 7393diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_super.c linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_super.c
7881--- linux-3.4.57/fs/xfs/xfs_super.c 2012-05-21 16:07:28.000000000 +0000 7394--- linux-3.10.17/fs/xfs/xfs_super.c 2013-07-14 17:01:31.000000000 +0000
7882+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_super.c 2012-05-21 16:15:05.000000000 +0000 7395+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_super.c 2013-08-22 20:30:00.000000000 +0000
7883@@ -113,6 +113,9 @@ mempool_t *xfs_ioend_pool; 7396@@ -114,6 +114,9 @@ mempool_t *xfs_ioend_pool;
7884 #define MNTOPT_NODELAYLOG "nodelaylog" /* Delayed logging disabled */ 7397 #define MNTOPT_NODELAYLOG "nodelaylog" /* Delayed logging disabled */
7885 #define MNTOPT_DISCARD "discard" /* Discard unused blocks */ 7398 #define MNTOPT_DISCARD "discard" /* Discard unused blocks */
7886 #define MNTOPT_NODISCARD "nodiscard" /* Do not discard unused blocks */ 7399 #define MNTOPT_NODISCARD "nodiscard" /* Do not discard unused blocks */
@@ -7890,22 +7403,26 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_super.c linux-3.4.57-vs2.3.3.9/fs/
7890 7403
7891 /* 7404 /*
7892 * Table driven mount option parser. 7405 * Table driven mount option parser.
7893@@ -121,10 +124,14 @@ mempool_t *xfs_ioend_pool; 7406@@ -126,6 +129,8 @@ enum {
7894 * in the future, too. 7407 Opt_nobarrier,
7895 */ 7408 Opt_inode64,
7896 enum { 7409 Opt_inode32,
7897+ Opt_tag, Opt_notag, 7410+ Opt_tag,
7898 Opt_barrier, Opt_nobarrier, Opt_err 7411+ Opt_notag,
7412 Opt_err
7899 }; 7413 };
7900 7414
7901 static const match_table_t tokens = { 7415@@ -134,6 +139,9 @@ static const match_table_t tokens = {
7416 {Opt_nobarrier, "nobarrier"},
7417 {Opt_inode64, "inode64"},
7418 {Opt_inode32, "inode32"},
7902+ {Opt_tag, "tagxid"}, 7419+ {Opt_tag, "tagxid"},
7903+ {Opt_tag, "tag"}, 7420+ {Opt_tag, "tag"},
7904+ {Opt_notag, "notag"}, 7421+ {Opt_notag, "notag"},
7905 {Opt_barrier, "barrier"},
7906 {Opt_nobarrier, "nobarrier"},
7907 {Opt_err, NULL} 7422 {Opt_err, NULL}
7908@@ -372,6 +379,19 @@ xfs_parseargs( 7423 };
7424
7425@@ -392,6 +400,19 @@ xfs_parseargs(
7909 } else if (!strcmp(this_char, "irixsgid")) { 7426 } else if (!strcmp(this_char, "irixsgid")) {
7910 xfs_warn(mp, 7427 xfs_warn(mp,
7911 "irixsgid is now a sysctl(2) variable, option is deprecated."); 7428 "irixsgid is now a sysctl(2) variable, option is deprecated.");
@@ -7925,9 +7442,9 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_super.c linux-3.4.57-vs2.3.3.9/fs/
7925 } else { 7442 } else {
7926 xfs_warn(mp, "unknown mount option [%s].", this_char); 7443 xfs_warn(mp, "unknown mount option [%s].", this_char);
7927 return EINVAL; 7444 return EINVAL;
7928@@ -1127,6 +1147,16 @@ xfs_fs_remount( 7445@@ -1238,6 +1259,16 @@ xfs_fs_remount(
7929 case Opt_nobarrier: 7446 case Opt_inode32:
7930 mp->m_flags &= ~XFS_MOUNT_BARRIER; 7447 mp->m_maxagi = xfs_set_inode32(mp);
7931 break; 7448 break;
7932+ case Opt_tag: 7449+ case Opt_tag:
7933+ if (!(sb->s_flags & MS_TAGGED)) { 7450+ if (!(sb->s_flags & MS_TAGGED)) {
@@ -7942,7 +7459,7 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_super.c linux-3.4.57-vs2.3.3.9/fs/
7942 default: 7459 default:
7943 /* 7460 /*
7944 * Logically we would return an error here to prevent 7461 * Logically we would return an error here to prevent
7945@@ -1346,6 +1376,9 @@ xfs_fs_fill_super( 7462@@ -1469,6 +1500,9 @@ xfs_fs_fill_super(
7946 if (error) 7463 if (error)
7947 goto out_free_sb; 7464 goto out_free_sb;
7948 7465
@@ -7952,10 +7469,10 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_super.c linux-3.4.57-vs2.3.3.9/fs/
7952 /* 7469 /*
7953 * we must configure the block size in the superblock before we run the 7470 * we must configure the block size in the superblock before we run the
7954 * full mount process as the mount process can lookup and cache inodes. 7471 * full mount process as the mount process can lookup and cache inodes.
7955diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_vnodeops.c linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_vnodeops.c 7472diff -NurpP --minimal linux-3.10.17/fs/xfs/xfs_vnodeops.c linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_vnodeops.c
7956--- linux-3.4.57/fs/xfs/xfs_vnodeops.c 2012-05-21 16:07:28.000000000 +0000 7473--- linux-3.10.17/fs/xfs/xfs_vnodeops.c 2013-07-14 17:01:31.000000000 +0000
7957+++ linux-3.4.57-vs2.3.3.9/fs/xfs/xfs_vnodeops.c 2012-05-21 16:15:05.000000000 +0000 7474+++ linux-3.10.17-vs2.3.6.6/fs/xfs/xfs_vnodeops.c 2013-08-22 20:30:00.000000000 +0000
7958@@ -106,6 +106,77 @@ xfs_readlink_bmap( 7475@@ -155,6 +155,77 @@ xfs_free_eofblocks(
7959 return error; 7476 return error;
7960 } 7477 }
7961 7478
@@ -8031,48 +7548,12 @@ diff -NurpP --minimal linux-3.4.57/fs/xfs/xfs_vnodeops.c linux-3.4.57-vs2.3.3.9/
8031+ 7548+
8032+ 7549+
8033 int 7550 int
8034 xfs_readlink( 7551 xfs_release(
8035 xfs_inode_t *ip, 7552 xfs_inode_t *ip)
8036diff -NurpP --minimal linux-3.4.57/include/linux/Kbuild linux-3.4.57-vs2.3.3.9/include/linux/Kbuild 7553diff -NurpP --minimal linux-3.10.17/include/linux/cred.h linux-3.10.17-vs2.3.6.6/include/linux/cred.h
8037--- linux-3.4.57/include/linux/Kbuild 2013-08-13 14:13:35.000000000 +0000 7554--- linux-3.10.17/include/linux/cred.h 2013-02-19 13:58:50.000000000 +0000
8038+++ linux-3.4.57-vs2.3.3.9/include/linux/Kbuild 2012-07-24 09:52:30.000000000 +0000 7555+++ linux-3.10.17-vs2.3.6.6/include/linux/cred.h 2013-08-22 20:30:00.000000000 +0000
8039@@ -18,6 +18,7 @@ header-y += netfilter_bridge/ 7556@@ -143,6 +143,7 @@ extern void exit_creds(struct task_struc
8040 header-y += netfilter_ipv4/
8041 header-y += netfilter_ipv6/
8042 header-y += usb/
8043+header-y += vserver/
8044 header-y += wimax/
8045
8046 objhdr-y += version.h
8047diff -NurpP --minimal linux-3.4.57/include/linux/capability.h linux-3.4.57-vs2.3.3.9/include/linux/capability.h
8048--- linux-3.4.57/include/linux/capability.h 2012-03-19 18:47:27.000000000 +0000
8049+++ linux-3.4.57-vs2.3.3.9/include/linux/capability.h 2012-05-21 16:15:05.000000000 +0000
8050@@ -280,6 +280,7 @@ struct cpu_vfs_cap_data {
8051 arbitrary SCSI commands */
8052 /* Allow setting encryption key on loopback filesystem */
8053 /* Allow setting zone reclaim policy */
8054+/* Allow the selection of a security context */
8055
8056 #define CAP_SYS_ADMIN 21
8057
8058@@ -363,7 +364,12 @@ struct cpu_vfs_cap_data {
8059
8060 #define CAP_LAST_CAP CAP_WAKE_ALARM
8061
8062-#define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP)
8063+/* Allow context manipulations */
8064+/* Allow changing context info on files */
8065+
8066+#define CAP_CONTEXT 63
8067+
8068+#define cap_valid(x) ((x) >= 0 && ((x) <= CAP_LAST_CAP || (x) == CAP_CONTEXT))
8069
8070 /*
8071 * Bit location of each capability (used by user-space library and kernel)
8072diff -NurpP --minimal linux-3.4.57/include/linux/cred.h linux-3.4.57-vs2.3.3.9/include/linux/cred.h
8073--- linux-3.4.57/include/linux/cred.h 2012-03-19 18:47:27.000000000 +0000
8074+++ linux-3.4.57-vs2.3.3.9/include/linux/cred.h 2012-05-21 16:15:05.000000000 +0000
8075@@ -156,6 +156,7 @@ extern void exit_creds(struct task_struc
8076 extern int copy_creds(struct task_struct *, unsigned long); 7557 extern int copy_creds(struct task_struct *, unsigned long);
8077 extern const struct cred *get_task_cred(struct task_struct *); 7558 extern const struct cred *get_task_cred(struct task_struct *);
8078 extern struct cred *cred_alloc_blank(void); 7559 extern struct cred *cred_alloc_blank(void);
@@ -8080,7 +7561,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/cred.h linux-3.4.57-vs2.3.3.9/i
8080 extern struct cred *prepare_creds(void); 7561 extern struct cred *prepare_creds(void);
8081 extern struct cred *prepare_exec_creds(void); 7562 extern struct cred *prepare_exec_creds(void);
8082 extern int commit_creds(struct cred *); 7563 extern int commit_creds(struct cred *);
8083@@ -209,6 +210,31 @@ static inline void validate_process_cred 7564@@ -196,6 +197,31 @@ static inline void validate_process_cred
8084 } 7565 }
8085 #endif 7566 #endif
8086 7567
@@ -8112,96 +7593,19 @@ diff -NurpP --minimal linux-3.4.57/include/linux/cred.h linux-3.4.57-vs2.3.3.9/i
8112 /** 7593 /**
8113 * get_new_cred - Get a reference on a new set of credentials 7594 * get_new_cred - Get a reference on a new set of credentials
8114 * @cred: The new credentials to reference 7595 * @cred: The new credentials to reference
8115diff -NurpP --minimal linux-3.4.57/include/linux/devpts_fs.h linux-3.4.57-vs2.3.3.9/include/linux/devpts_fs.h 7596diff -NurpP --minimal linux-3.10.17/include/linux/devpts_fs.h linux-3.10.17-vs2.3.6.6/include/linux/devpts_fs.h
8116--- linux-3.4.57/include/linux/devpts_fs.h 2008-12-24 23:26:37.000000000 +0000 7597--- linux-3.10.17/include/linux/devpts_fs.h 2013-02-19 13:58:50.000000000 +0000
8117+++ linux-3.4.57-vs2.3.3.9/include/linux/devpts_fs.h 2012-05-21 16:15:05.000000000 +0000 7598+++ linux-3.10.17-vs2.3.6.6/include/linux/devpts_fs.h 2013-08-22 20:30:00.000000000 +0000
8118@@ -45,5 +45,4 @@ static inline void devpts_pty_kill(struc 7599@@ -45,5 +45,4 @@ static inline void devpts_pty_kill(struc
8119 7600
8120 #endif 7601 #endif
8121 7602
8122- 7603-
8123 #endif /* _LINUX_DEVPTS_FS_H */ 7604 #endif /* _LINUX_DEVPTS_FS_H */
8124diff -NurpP --minimal linux-3.4.57/include/linux/fs.h linux-3.4.57-vs2.3.3.9/include/linux/fs.h 7605diff -NurpP --minimal linux-3.10.17/include/linux/fs.h linux-3.10.17-vs2.3.6.6/include/linux/fs.h
8125--- linux-3.4.57/include/linux/fs.h 2012-05-21 16:07:29.000000000 +0000 7606--- linux-3.10.17/include/linux/fs.h 2013-07-14 17:01:32.000000000 +0000
8126+++ linux-3.4.57-vs2.3.3.9/include/linux/fs.h 2012-05-21 16:15:05.000000000 +0000 7607+++ linux-3.10.17-vs2.3.6.6/include/linux/fs.h 2013-08-22 20:30:00.000000000 +0000
8127@@ -214,6 +214,9 @@ struct inodes_stat_t { 7608@@ -211,6 +211,7 @@ typedef void (dio_iodone_t)(struct kiocb
8128 #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */
8129 #define MS_I_VERSION (1<<23) /* Update inode I_version field */
8130 #define MS_STRICTATIME (1<<24) /* Always perform atime updates */
8131+#define MS_TAGGED (1<<25) /* use generic inode tagging */
8132+#define MS_TAGID (1<<26) /* use specific tag for this mount */
8133+#define MS_NOTAGCHECK (1<<27) /* don't check tags */
8134 #define MS_NOSEC (1<<28)
8135 #define MS_BORN (1<<29)
8136 #define MS_ACTIVE (1<<30)
8137@@ -245,6 +248,14 @@ struct inodes_stat_t {
8138 #define S_IMA 1024 /* Inode has an associated IMA struct */
8139 #define S_AUTOMOUNT 2048 /* Automount/referral quasi-directory */
8140 #define S_NOSEC 4096 /* no suid or xattr security attributes */
8141+#define S_IXUNLINK 8192 /* Immutable Invert on unlink */
8142+
8143+/* Linux-VServer related Inode flags */
8144+
8145+#define V_VALID 1
8146+#define V_XATTR 2
8147+#define V_BARRIER 4 /* Barrier for chroot() */
8148+#define V_COW 8 /* Copy on Write */
8149
8150 /*
8151 * Note that nosuid etc flags are inode-specific: setting some file-system
8152@@ -267,12 +278,15 @@ struct inodes_stat_t {
8153 #define IS_DIRSYNC(inode) (__IS_FLG(inode, MS_SYNCHRONOUS|MS_DIRSYNC) || \
8154 ((inode)->i_flags & (S_SYNC|S_DIRSYNC)))
8155 #define IS_MANDLOCK(inode) __IS_FLG(inode, MS_MANDLOCK)
8156-#define IS_NOATIME(inode) __IS_FLG(inode, MS_RDONLY|MS_NOATIME)
8157-#define IS_I_VERSION(inode) __IS_FLG(inode, MS_I_VERSION)
8158+#define IS_NOATIME(inode) __IS_FLG(inode, MS_RDONLY|MS_NOATIME)
8159+#define IS_I_VERSION(inode) __IS_FLG(inode, MS_I_VERSION)
8160+#define IS_TAGGED(inode) __IS_FLG(inode, MS_TAGGED)
8161
8162 #define IS_NOQUOTA(inode) ((inode)->i_flags & S_NOQUOTA)
8163 #define IS_APPEND(inode) ((inode)->i_flags & S_APPEND)
8164 #define IS_IMMUTABLE(inode) ((inode)->i_flags & S_IMMUTABLE)
8165+#define IS_IXUNLINK(inode) ((inode)->i_flags & S_IXUNLINK)
8166+#define IS_IXORUNLINK(inode) ((IS_IXUNLINK(inode) ? S_IMMUTABLE : 0) ^ IS_IMMUTABLE(inode))
8167 #define IS_POSIXACL(inode) __IS_FLG(inode, MS_POSIXACL)
8168
8169 #define IS_DEADDIR(inode) ((inode)->i_flags & S_DEAD)
8170@@ -283,6 +297,16 @@ struct inodes_stat_t {
8171 #define IS_AUTOMOUNT(inode) ((inode)->i_flags & S_AUTOMOUNT)
8172 #define IS_NOSEC(inode) ((inode)->i_flags & S_NOSEC)
8173
8174+#define IS_BARRIER(inode) (S_ISDIR((inode)->i_mode) && ((inode)->i_vflags & V_BARRIER))
8175+
8176+#ifdef CONFIG_VSERVER_COWBL
8177+# define IS_COW(inode) (IS_IXUNLINK(inode) && IS_IMMUTABLE(inode))
8178+# define IS_COW_LINK(inode) (S_ISREG((inode)->i_mode) && ((inode)->i_nlink > 1))
8179+#else
8180+# define IS_COW(inode) (0)
8181+# define IS_COW_LINK(inode) (0)
8182+#endif
8183+
8184 /* the read-only stuff doesn't really belong here, but any other place is
8185 probably as bad and I don't want to create yet another include file. */
8186
8187@@ -369,11 +393,14 @@ struct inodes_stat_t {
8188 #define FS_EXTENT_FL 0x00080000 /* Extents */
8189 #define FS_DIRECTIO_FL 0x00100000 /* Use direct i/o */
8190 #define FS_NOCOW_FL 0x00800000 /* Do not cow file */
8191+#define FS_IXUNLINK_FL 0x08000000 /* Immutable invert on unlink */
8192 #define FS_RESERVED_FL 0x80000000 /* reserved for ext2 lib */
8193
8194-#define FS_FL_USER_VISIBLE 0x0003DFFF /* User visible flags */
8195-#define FS_FL_USER_MODIFIABLE 0x000380FF /* User modifiable flags */
8196+#define FS_BARRIER_FL 0x04000000 /* Barrier for chroot() */
8197+#define FS_COW_FL 0x20000000 /* Copy on Write marker */
8198
8199+#define FS_FL_USER_VISIBLE 0x0103DFFF /* User visible flags */
8200+#define FS_FL_USER_MODIFIABLE 0x010380FF /* User modifiable flags */
8201
8202 #define SYNC_FILE_RANGE_WAIT_BEFORE 1
8203 #define SYNC_FILE_RANGE_WRITE 2
8204@@ -456,6 +483,7 @@ typedef void (dio_iodone_t)(struct kiocb
8205 #define ATTR_KILL_PRIV (1 << 14) 7609 #define ATTR_KILL_PRIV (1 << 14)
8206 #define ATTR_OPEN (1 << 15) /* Truncating from open(O_TRUNC) */ 7610 #define ATTR_OPEN (1 << 15) /* Truncating from open(O_TRUNC) */
8207 #define ATTR_TIMES_SET (1 << 16) 7611 #define ATTR_TIMES_SET (1 << 16)
@@ -8209,45 +7613,54 @@ diff -NurpP --minimal linux-3.4.57/include/linux/fs.h linux-3.4.57-vs2.3.3.9/inc
8209 7613
8210 /* 7614 /*
8211 * This is the Inode Attributes structure, used for notify_change(). It 7615 * This is the Inode Attributes structure, used for notify_change(). It
8212@@ -471,6 +499,7 @@ struct iattr { 7616@@ -226,6 +227,7 @@ struct iattr {
8213 umode_t ia_mode; 7617 umode_t ia_mode;
8214 uid_t ia_uid; 7618 kuid_t ia_uid;
8215 gid_t ia_gid; 7619 kgid_t ia_gid;
8216+ tag_t ia_tag; 7620+ ktag_t ia_tag;
8217 loff_t ia_size; 7621 loff_t ia_size;
8218 struct timespec ia_atime; 7622 struct timespec ia_atime;
8219 struct timespec ia_mtime; 7623 struct timespec ia_mtime;
8220@@ -484,6 +513,9 @@ struct iattr { 7624@@ -523,7 +525,9 @@ struct inode {
8221 struct file *ia_file;
8222 };
8223
8224+#define ATTR_FLAG_BARRIER 512 /* Barrier for chroot() */
8225+#define ATTR_FLAG_IXUNLINK 1024 /* Immutable invert on unlink */
8226+
8227 /*
8228 * Includes for diskquotas.
8229 */
8230@@ -763,7 +795,9 @@ struct inode {
8231 unsigned short i_opflags; 7625 unsigned short i_opflags;
8232 uid_t i_uid; 7626 kuid_t i_uid;
8233 gid_t i_gid; 7627 kgid_t i_gid;
8234- unsigned int i_flags; 7628- unsigned int i_flags;
8235+ tag_t i_tag; 7629+ ktag_t i_tag;
8236+ unsigned short i_flags; 7630+ unsigned short i_flags;
8237+ unsigned short i_vflags; 7631+ unsigned short i_vflags;
8238 7632
8239 #ifdef CONFIG_FS_POSIX_ACL 7633 #ifdef CONFIG_FS_POSIX_ACL
8240 struct posix_acl *i_acl; 7634 struct posix_acl *i_acl;
8241@@ -792,6 +826,7 @@ struct inode { 7635@@ -552,6 +556,7 @@ struct inode {
8242 unsigned int __i_nlink; 7636 unsigned int __i_nlink;
8243 }; 7637 };
8244 dev_t i_rdev; 7638 dev_t i_rdev;
8245+ dev_t i_mdev; 7639+ dev_t i_mdev;
7640 loff_t i_size;
8246 struct timespec i_atime; 7641 struct timespec i_atime;
8247 struct timespec i_mtime; 7642 struct timespec i_mtime;
8248 struct timespec i_ctime; 7643@@ -704,6 +709,11 @@ static inline gid_t i_gid_read(const str
8249@@ -929,12 +964,12 @@ static inline void i_size_write(struct i 7644 return from_kgid(&init_user_ns, inode->i_gid);
7645 }
7646
7647+static inline vtag_t i_tag_read(const struct inode *inode)
7648+{
7649+ return from_ktag(&init_user_ns, inode->i_tag);
7650+}
7651+
7652 static inline void i_uid_write(struct inode *inode, uid_t uid)
7653 {
7654 inode->i_uid = make_kuid(&init_user_ns, uid);
7655@@ -714,14 +724,19 @@ static inline void i_gid_write(struct in
7656 inode->i_gid = make_kgid(&init_user_ns, gid);
7657 }
8250 7658
7659+static inline void i_tag_write(struct inode *inode, vtag_t tag)
7660+{
7661+ inode->i_tag = make_ktag(&init_user_ns, tag);
7662+}
7663+
8251 static inline unsigned iminor(const struct inode *inode) 7664 static inline unsigned iminor(const struct inode *inode)
8252 { 7665 {
8253- return MINOR(inode->i_rdev); 7666- return MINOR(inode->i_rdev);
@@ -8261,39 +7674,95 @@ diff -NurpP --minimal linux-3.4.57/include/linux/fs.h linux-3.4.57-vs2.3.3.9/inc
8261 } 7674 }
8262 7675
8263 extern struct block_device *I_BDEV(struct inode *inode); 7676 extern struct block_device *I_BDEV(struct inode *inode);
8264@@ -1001,6 +1036,7 @@ struct file { 7677@@ -788,6 +803,7 @@ struct file {
8265 loff_t f_pos; 7678 loff_t f_pos;
8266 struct fown_struct f_owner; 7679 struct fown_struct f_owner;
8267 const struct cred *f_cred; 7680 const struct cred *f_cred;
8268+ xid_t f_xid; 7681+ vxid_t f_xid;
8269 struct file_ra_state f_ra; 7682 struct file_ra_state f_ra;
8270 7683
8271 u64 f_version; 7684 u64 f_version;
8272@@ -1148,6 +1184,7 @@ struct file_lock { 7685@@ -939,6 +955,7 @@ struct file_lock {
8273 struct file *fl_file; 7686 struct file *fl_file;
8274 loff_t fl_start; 7687 loff_t fl_start;
8275 loff_t fl_end; 7688 loff_t fl_end;
8276+ xid_t fl_xid; 7689+ vxid_t fl_xid;
8277 7690
8278 struct fasync_struct * fl_fasync; /* for lease break notifications */ 7691 struct fasync_struct * fl_fasync; /* for lease break notifications */
8279 /* for lease breaks: */ 7692 /* for lease breaks: */
8280@@ -1661,6 +1698,7 @@ struct inode_operations { 7693@@ -1569,6 +1586,7 @@ struct inode_operations {
8281 ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t); 7694 ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t);
8282 ssize_t (*listxattr) (struct dentry *, char *, size_t); 7695 ssize_t (*listxattr) (struct dentry *, char *, size_t);
8283 int (*removexattr) (struct dentry *, const char *); 7696 int (*removexattr) (struct dentry *, const char *);
8284+ int (*sync_flags) (struct inode *, int, int); 7697+ int (*sync_flags) (struct inode *, int, int);
8285 void (*truncate_range)(struct inode *, loff_t, loff_t);
8286 int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start, 7698 int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
8287 u64 len); 7699 u64 len);
8288@@ -1680,6 +1718,7 @@ extern ssize_t vfs_readv(struct file *, 7700 int (*update_time)(struct inode *, struct timespec *, int);
8289 unsigned long, loff_t *); 7701@@ -1581,6 +1599,7 @@ ssize_t rw_copy_check_uvector(int type,
8290 extern ssize_t vfs_writev(struct file *, const struct iovec __user *, 7702 unsigned long nr_segs, unsigned long fast_segs,
8291 unsigned long, loff_t *); 7703 struct iovec *fast_pointer,
7704 struct iovec **ret_pointer);
8292+ssize_t vfs_sendfile(struct file *, struct file *, loff_t *, size_t, loff_t); 7705+ssize_t vfs_sendfile(struct file *, struct file *, loff_t *, size_t, loff_t);
8293 7706
8294 struct super_operations { 7707 extern ssize_t vfs_read(struct file *, char __user *, size_t, loff_t *);
8295 struct inode *(*alloc_inode)(struct super_block *sb); 7708 extern ssize_t vfs_write(struct file *, const char __user *, size_t, loff_t *);
8296@@ -2509,6 +2548,7 @@ extern int dcache_dir_open(struct inode 7709@@ -1634,6 +1653,14 @@ struct super_operations {
7710 #define S_IMA 1024 /* Inode has an associated IMA struct */
7711 #define S_AUTOMOUNT 2048 /* Automount/referral quasi-directory */
7712 #define S_NOSEC 4096 /* no suid or xattr security attributes */
7713+#define S_IXUNLINK 8192 /* Immutable Invert on unlink */
7714+
7715+/* Linux-VServer related Inode flags */
7716+
7717+#define V_VALID 1
7718+#define V_XATTR 2
7719+#define V_BARRIER 4 /* Barrier for chroot() */
7720+#define V_COW 8 /* Copy on Write */
7721
7722 /*
7723 * Note that nosuid etc flags are inode-specific: setting some file-system
7724@@ -1658,10 +1685,13 @@ struct super_operations {
7725 #define IS_MANDLOCK(inode) __IS_FLG(inode, MS_MANDLOCK)
7726 #define IS_NOATIME(inode) __IS_FLG(inode, MS_RDONLY|MS_NOATIME)
7727 #define IS_I_VERSION(inode) __IS_FLG(inode, MS_I_VERSION)
7728+#define IS_TAGGED(inode) __IS_FLG(inode, MS_TAGGED)
7729
7730 #define IS_NOQUOTA(inode) ((inode)->i_flags & S_NOQUOTA)
7731 #define IS_APPEND(inode) ((inode)->i_flags & S_APPEND)
7732 #define IS_IMMUTABLE(inode) ((inode)->i_flags & S_IMMUTABLE)
7733+#define IS_IXUNLINK(inode) ((inode)->i_flags & S_IXUNLINK)
7734+#define IS_IXORUNLINK(inode) ((IS_IXUNLINK(inode) ? S_IMMUTABLE : 0) ^ IS_IMMUTABLE(inode))
7735 #define IS_POSIXACL(inode) __IS_FLG(inode, MS_POSIXACL)
7736
7737 #define IS_DEADDIR(inode) ((inode)->i_flags & S_DEAD)
7738@@ -1672,6 +1702,16 @@ struct super_operations {
7739 #define IS_AUTOMOUNT(inode) ((inode)->i_flags & S_AUTOMOUNT)
7740 #define IS_NOSEC(inode) ((inode)->i_flags & S_NOSEC)
7741
7742+#define IS_BARRIER(inode) (S_ISDIR((inode)->i_mode) && ((inode)->i_vflags & V_BARRIER))
7743+
7744+#ifdef CONFIG_VSERVER_COWBL
7745+# define IS_COW(inode) (IS_IXUNLINK(inode) && IS_IMMUTABLE(inode))
7746+# define IS_COW_LINK(inode) (S_ISREG((inode)->i_mode) && ((inode)->i_nlink > 1))
7747+#else
7748+# define IS_COW(inode) (0)
7749+# define IS_COW_LINK(inode) (0)
7750+#endif
7751+
7752 /*
7753 * Inode state bits. Protected by inode->i_lock
7754 *
7755@@ -1900,6 +1940,9 @@ extern int rw_verify_area(int, struct fi
7756 extern int locks_mandatory_locked(struct inode *);
7757 extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t);
7758
7759+#define ATTR_FLAG_BARRIER 512 /* Barrier for chroot() */
7760+#define ATTR_FLAG_IXUNLINK 1024 /* Immutable invert on unlink */
7761+
7762 /*
7763 * Candidates for mandatory locking have the setgid bit set
7764 * but no group execute bit - an otherwise meaningless combination.
7765@@ -2525,6 +2568,7 @@ extern int dcache_dir_open(struct inode
8297 extern int dcache_dir_close(struct inode *, struct file *); 7766 extern int dcache_dir_close(struct inode *, struct file *);
8298 extern loff_t dcache_dir_lseek(struct file *, loff_t, int); 7767 extern loff_t dcache_dir_lseek(struct file *, loff_t, int);
8299 extern int dcache_readdir(struct file *, void *, filldir_t); 7768 extern int dcache_readdir(struct file *, void *, filldir_t);
@@ -8301,47 +7770,13 @@ diff -NurpP --minimal linux-3.4.57/include/linux/fs.h linux-3.4.57-vs2.3.3.9/inc
8301 extern int simple_setattr(struct dentry *, struct iattr *); 7770 extern int simple_setattr(struct dentry *, struct iattr *);
8302 extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *); 7771 extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *);
8303 extern int simple_statfs(struct dentry *, struct kstatfs *); 7772 extern int simple_statfs(struct dentry *, struct kstatfs *);
8304diff -NurpP --minimal linux-3.4.57/include/linux/gfs2_ondisk.h linux-3.4.57-vs2.3.3.9/include/linux/gfs2_ondisk.h 7773diff -NurpP --minimal linux-3.10.17/include/linux/init_task.h linux-3.10.17-vs2.3.6.6/include/linux/init_task.h
8305--- linux-3.4.57/include/linux/gfs2_ondisk.h 2012-05-21 16:07:29.000000000 +0000 7774--- linux-3.10.17/include/linux/init_task.h 2013-05-31 13:45:27.000000000 +0000
8306+++ linux-3.4.57-vs2.3.3.9/include/linux/gfs2_ondisk.h 2012-05-21 16:15:05.000000000 +0000 7775+++ linux-3.10.17-vs2.3.6.6/include/linux/init_task.h 2013-08-22 20:30:00.000000000 +0000
8307@@ -214,6 +214,9 @@ enum { 7776@@ -222,6 +222,10 @@ extern struct task_group root_task_group
8308 gfs2fl_NoAtime = 7,
8309 gfs2fl_Sync = 8,
8310 gfs2fl_System = 9,
8311+ gfs2fl_IXUnlink = 16,
8312+ gfs2fl_Barrier = 17,
8313+ gfs2fl_Cow = 18,
8314 gfs2fl_TruncInProg = 29,
8315 gfs2fl_InheritDirectio = 30,
8316 gfs2fl_InheritJdata = 31,
8317@@ -230,6 +233,9 @@ enum {
8318 #define GFS2_DIF_NOATIME 0x00000080
8319 #define GFS2_DIF_SYNC 0x00000100
8320 #define GFS2_DIF_SYSTEM 0x00000200 /* New in gfs2 */
8321+#define GFS2_DIF_IXUNLINK 0x00010000
8322+#define GFS2_DIF_BARRIER 0x00020000
8323+#define GFS2_DIF_COW 0x00040000
8324 #define GFS2_DIF_TRUNC_IN_PROG 0x20000000 /* New in gfs2 */
8325 #define GFS2_DIF_INHERIT_DIRECTIO 0x40000000
8326 #define GFS2_DIF_INHERIT_JDATA 0x80000000
8327diff -NurpP --minimal linux-3.4.57/include/linux/if_tun.h linux-3.4.57-vs2.3.3.9/include/linux/if_tun.h
8328--- linux-3.4.57/include/linux/if_tun.h 2010-08-02 14:52:54.000000000 +0000
8329+++ linux-3.4.57-vs2.3.3.9/include/linux/if_tun.h 2012-05-21 16:15:05.000000000 +0000
8330@@ -53,6 +53,7 @@
8331 #define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog)
8332 #define TUNGETVNETHDRSZ _IOR('T', 215, int)
8333 #define TUNSETVNETHDRSZ _IOW('T', 216, int)
8334+#define TUNSETNID _IOW('T', 217, int)
8335
8336 /* TUNSETIFF ifr flags */
8337 #define IFF_TUN 0x0001
8338diff -NurpP --minimal linux-3.4.57/include/linux/init_task.h linux-3.4.57-vs2.3.3.9/include/linux/init_task.h
8339--- linux-3.4.57/include/linux/init_task.h 2013-08-13 14:13:35.000000000 +0000
8340+++ linux-3.4.57-vs2.3.3.9/include/linux/init_task.h 2012-10-22 13:09:53.000000000 +0000
8341@@ -210,6 +210,10 @@ extern struct task_group root_task_group
8342 INIT_TRACE_RECURSION \
8343 INIT_TASK_RCU_PREEMPT(tsk) \ 7777 INIT_TASK_RCU_PREEMPT(tsk) \
8344 INIT_CPUSET_SEQ \ 7778 INIT_CPUSET_SEQ \
7779 INIT_VTIME(tsk) \
8345+ .xid = 0, \ 7780+ .xid = 0, \
8346+ .vx_info = NULL, \ 7781+ .vx_info = NULL, \
8347+ .nid = 0, \ 7782+ .nid = 0, \
@@ -8349,84 +7784,32 @@ diff -NurpP --minimal linux-3.4.57/include/linux/init_task.h linux-3.4.57-vs2.3.
8349 } 7784 }
8350 7785
8351 7786
8352diff -NurpP --minimal linux-3.4.57/include/linux/ipc.h linux-3.4.57-vs2.3.3.9/include/linux/ipc.h 7787diff -NurpP --minimal linux-3.10.17/include/linux/ipc.h linux-3.10.17-vs2.3.6.6/include/linux/ipc.h
8353--- linux-3.4.57/include/linux/ipc.h 2012-03-19 18:47:28.000000000 +0000 7788--- linux-3.10.17/include/linux/ipc.h 2012-12-11 03:30:57.000000000 +0000
8354+++ linux-3.4.57-vs2.3.3.9/include/linux/ipc.h 2012-05-21 16:15:05.000000000 +0000 7789+++ linux-3.10.17-vs2.3.6.6/include/linux/ipc.h 2013-08-22 20:30:00.000000000 +0000
8355@@ -91,6 +91,7 @@ struct kern_ipc_perm 7790@@ -16,6 +16,7 @@ struct kern_ipc_perm
8356 key_t key; 7791 key_t key;
8357 uid_t uid; 7792 kuid_t uid;
8358 gid_t gid; 7793 kgid_t gid;
8359+ xid_t xid; 7794+ vxid_t xid;
8360 uid_t cuid; 7795 kuid_t cuid;
8361 gid_t cgid; 7796 kgid_t cgid;
8362 umode_t mode; 7797 umode_t mode;
8363diff -NurpP --minimal linux-3.4.57/include/linux/ipc_namespace.h linux-3.4.57-vs2.3.3.9/include/linux/ipc_namespace.h 7798diff -NurpP --minimal linux-3.10.17/include/linux/loop.h linux-3.10.17-vs2.3.6.6/include/linux/loop.h
8364--- linux-3.4.57/include/linux/ipc_namespace.h 2013-08-13 14:13:35.000000000 +0000 7799--- linux-3.10.17/include/linux/loop.h 2013-02-19 13:58:51.000000000 +0000
8365+++ linux-3.4.57-vs2.3.3.9/include/linux/ipc_namespace.h 2013-07-14 13:38:35.000000000 +0000 7800+++ linux-3.10.17-vs2.3.6.6/include/linux/loop.h 2013-08-22 20:30:00.000000000 +0000
8366@@ -101,7 +101,8 @@ static inline int mq_init_ns(struct ipc_ 7801@@ -41,6 +41,7 @@ struct loop_device {
8367
8368 #if defined(CONFIG_IPC_NS)
8369 extern struct ipc_namespace *copy_ipcs(unsigned long flags,
8370- struct task_struct *tsk);
8371+ struct ipc_namespace *old_ns,
8372+ struct user_namespace *user_ns);
8373 static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
8374 {
8375 if (ns)
8376@@ -112,12 +113,13 @@ static inline struct ipc_namespace *get_
8377 extern void put_ipc_ns(struct ipc_namespace *ns);
8378 #else
8379 static inline struct ipc_namespace *copy_ipcs(unsigned long flags,
8380- struct task_struct *tsk)
8381+ struct ipc_namespace *old_ns,
8382+ struct user_namespace *user_ns)
8383 {
8384 if (flags & CLONE_NEWIPC)
8385 return ERR_PTR(-EINVAL);
8386
8387- return tsk->nsproxy->ipc_ns;
8388+ return old_ns;
8389 }
8390
8391 static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns)
8392diff -NurpP --minimal linux-3.4.57/include/linux/loop.h linux-3.4.57-vs2.3.3.9/include/linux/loop.h
8393--- linux-3.4.57/include/linux/loop.h 2012-01-09 15:14:58.000000000 +0000
8394+++ linux-3.4.57-vs2.3.3.9/include/linux/loop.h 2012-05-21 16:15:05.000000000 +0000
8395@@ -45,6 +45,7 @@ struct loop_device {
8396 struct loop_func_table *lo_encryption; 7802 struct loop_func_table *lo_encryption;
8397 __u32 lo_init[2]; 7803 __u32 lo_init[2];
8398 uid_t lo_key_owner; /* Who set the key */ 7804 kuid_t lo_key_owner; /* Who set the key */
8399+ xid_t lo_xid; 7805+ vxid_t lo_xid;
8400 int (*ioctl)(struct loop_device *, int cmd, 7806 int (*ioctl)(struct loop_device *, int cmd,
8401 unsigned long arg); 7807 unsigned long arg);
8402 7808
8403diff -NurpP --minimal linux-3.4.57/include/linux/magic.h linux-3.4.57-vs2.3.3.9/include/linux/magic.h 7809diff -NurpP --minimal linux-3.10.17/include/linux/memcontrol.h linux-3.10.17-vs2.3.6.6/include/linux/memcontrol.h
8404--- linux-3.4.57/include/linux/magic.h 2012-05-21 16:07:31.000000000 +0000 7810--- linux-3.10.17/include/linux/memcontrol.h 2013-05-31 13:45:28.000000000 +0000
8405+++ linux-3.4.57-vs2.3.3.9/include/linux/magic.h 2012-05-21 16:15:05.000000000 +0000 7811+++ linux-3.10.17-vs2.3.6.6/include/linux/memcontrol.h 2013-08-22 20:30:00.000000000 +0000
8406@@ -3,7 +3,7 @@ 7812@@ -86,6 +86,13 @@ extern struct mem_cgroup *try_get_mem_cg
8407
8408 #define ADFS_SUPER_MAGIC 0xadf5
8409 #define AFFS_SUPER_MAGIC 0xadff
8410-#define AFS_SUPER_MAGIC 0x5346414F
8411+#define AFS_SUPER_MAGIC 0x5346414F
8412 #define AUTOFS_SUPER_MAGIC 0x0187
8413 #define CODA_SUPER_MAGIC 0x73757245
8414 #define CRAMFS_MAGIC 0x28cd3d45 /* some random number */
8415diff -NurpP --minimal linux-3.4.57/include/linux/major.h linux-3.4.57-vs2.3.3.9/include/linux/major.h
8416--- linux-3.4.57/include/linux/major.h 2009-09-10 13:26:25.000000000 +0000
8417+++ linux-3.4.57-vs2.3.3.9/include/linux/major.h 2012-05-21 16:15:05.000000000 +0000
8418@@ -15,6 +15,7 @@
8419 #define HD_MAJOR IDE0_MAJOR
8420 #define PTY_SLAVE_MAJOR 3
8421 #define TTY_MAJOR 4
8422+#define VROOT_MAJOR 4
8423 #define TTYAUX_MAJOR 5
8424 #define LP_MAJOR 6
8425 #define VCS_MAJOR 7
8426diff -NurpP --minimal linux-3.4.57/include/linux/memcontrol.h linux-3.4.57-vs2.3.3.9/include/linux/memcontrol.h
8427--- linux-3.4.57/include/linux/memcontrol.h 2012-05-21 16:07:31.000000000 +0000
8428+++ linux-3.4.57-vs2.3.3.9/include/linux/memcontrol.h 2012-05-21 16:15:05.000000000 +0000
8429@@ -88,6 +88,13 @@ extern struct mem_cgroup *try_get_mem_cg
8430 extern struct mem_cgroup *parent_mem_cgroup(struct mem_cgroup *memcg); 7813 extern struct mem_cgroup *parent_mem_cgroup(struct mem_cgroup *memcg);
8431 extern struct mem_cgroup *mem_cgroup_from_cont(struct cgroup *cont); 7814 extern struct mem_cgroup *mem_cgroup_from_cont(struct cgroup *cont);
8432 7815
@@ -8438,42 +7821,25 @@ diff -NurpP --minimal linux-3.4.57/include/linux/memcontrol.h linux-3.4.57-vs2.3
8438+extern s64 mem_cgroup_stat_read_mapped(struct mem_cgroup *mem); 7821+extern s64 mem_cgroup_stat_read_mapped(struct mem_cgroup *mem);
8439+ 7822+
8440 static inline 7823 static inline
8441 int mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *cgroup) 7824 bool mm_match_cgroup(const struct mm_struct *mm, const struct mem_cgroup *memcg)
8442 { 7825 {
8443diff -NurpP --minimal linux-3.4.57/include/linux/mm_types.h linux-3.4.57-vs2.3.3.9/include/linux/mm_types.h 7826diff -NurpP --minimal linux-3.10.17/include/linux/mm_types.h linux-3.10.17-vs2.3.6.6/include/linux/mm_types.h
8444--- linux-3.4.57/include/linux/mm_types.h 2013-08-13 14:13:35.000000000 +0000 7827--- linux-3.10.17/include/linux/mm_types.h 2013-10-25 15:17:43.000000000 +0000
8445+++ linux-3.4.57-vs2.3.3.9/include/linux/mm_types.h 2012-07-17 22:29:43.000000000 +0000 7828+++ linux-3.10.17-vs2.3.6.6/include/linux/mm_types.h 2013-10-09 17:37:22.000000000 +0000
8446@@ -353,6 +353,7 @@ struct mm_struct { 7829@@ -381,6 +381,7 @@ struct mm_struct {
8447 7830
8448 /* Architecture-specific MM context */ 7831 /* Architecture-specific MM context */
8449 mm_context_t context; 7832 mm_context_t context;
8450+ struct vx_info *mm_vx_info; 7833+ struct vx_info *mm_vx_info;
8451 7834
8452 /* Swap token stuff */ 7835 unsigned long flags; /* Must use atomic bitops to access the bits */
8453 /*
8454diff -NurpP --minimal linux-3.4.57/include/linux/mmzone.h linux-3.4.57-vs2.3.3.9/include/linux/mmzone.h
8455--- linux-3.4.57/include/linux/mmzone.h 2013-08-13 14:13:35.000000000 +0000
8456+++ linux-3.4.57-vs2.3.3.9/include/linux/mmzone.h 2012-07-17 22:29:43.000000000 +0000
8457@@ -684,6 +684,13 @@ typedef struct pglist_data {
8458 __pgdat->node_start_pfn + __pgdat->node_spanned_pages;\
8459 })
8460
8461+#define node_start_pfn(nid) (NODE_DATA(nid)->node_start_pfn)
8462+
8463+#define node_end_pfn(nid) ({\
8464+ pg_data_t *__pgdat = NODE_DATA(nid);\
8465+ __pgdat->node_start_pfn + __pgdat->node_spanned_pages;\
8466+})
8467+
8468 #include <linux/memory_hotplug.h>
8469 7836
8470 extern struct mutex zonelists_mutex; 7837diff -NurpP --minimal linux-3.10.17/include/linux/mount.h linux-3.10.17-vs2.3.6.6/include/linux/mount.h
8471diff -NurpP --minimal linux-3.4.57/include/linux/mount.h linux-3.4.57-vs2.3.3.9/include/linux/mount.h 7838--- linux-3.10.17/include/linux/mount.h 2013-05-31 13:45:28.000000000 +0000
8472--- linux-3.4.57/include/linux/mount.h 2012-03-19 18:47:28.000000000 +0000 7839+++ linux-3.10.17-vs2.3.6.6/include/linux/mount.h 2013-08-22 20:30:00.000000000 +0000
8473+++ linux-3.4.57-vs2.3.3.9/include/linux/mount.h 2012-05-21 16:15:05.000000000 +0000 7840@@ -49,6 +49,9 @@ struct mnt_namespace;
8474@@ -47,6 +47,9 @@ struct mnt_namespace;
8475 7841
8476 #define MNT_INTERNAL 0x4000 7842 #define MNT_LOCK_READONLY 0x400000
8477 7843
8478+#define MNT_TAGID 0x10000 7844+#define MNT_TAGID 0x10000
8479+#define MNT_NOTAG 0x20000 7845+#define MNT_NOTAG 0x20000
@@ -8481,10 +7847,10 @@ diff -NurpP --minimal linux-3.4.57/include/linux/mount.h linux-3.4.57-vs2.3.3.9/
8481 struct vfsmount { 7847 struct vfsmount {
8482 struct dentry *mnt_root; /* root of the mounted tree */ 7848 struct dentry *mnt_root; /* root of the mounted tree */
8483 struct super_block *mnt_sb; /* pointer to superblock */ 7849 struct super_block *mnt_sb; /* pointer to superblock */
8484diff -NurpP --minimal linux-3.4.57/include/linux/net.h linux-3.4.57-vs2.3.3.9/include/linux/net.h 7850diff -NurpP --minimal linux-3.10.17/include/linux/net.h linux-3.10.17-vs2.3.6.6/include/linux/net.h
8485--- linux-3.4.57/include/linux/net.h 2013-08-13 14:13:35.000000000 +0000 7851--- linux-3.10.17/include/linux/net.h 2013-07-14 17:01:32.000000000 +0000
8486+++ linux-3.4.57-vs2.3.3.9/include/linux/net.h 2012-09-01 08:51:18.000000000 +0000 7852+++ linux-3.10.17-vs2.3.6.6/include/linux/net.h 2013-08-22 20:30:00.000000000 +0000
8487@@ -73,6 +73,7 @@ struct net; 7853@@ -38,6 +38,7 @@ struct net;
8488 #define SOCK_PASSCRED 3 7854 #define SOCK_PASSCRED 3
8489 #define SOCK_PASSSEC 4 7855 #define SOCK_PASSSEC 4
8490 #define SOCK_EXTERNALLY_ALLOCATED 5 7856 #define SOCK_EXTERNALLY_ALLOCATED 5
@@ -8492,33 +7858,20 @@ diff -NurpP --minimal linux-3.4.57/include/linux/net.h linux-3.4.57-vs2.3.3.9/in
8492 7858
8493 #ifndef ARCH_HAS_SOCKET_TYPES 7859 #ifndef ARCH_HAS_SOCKET_TYPES
8494 /** 7860 /**
8495diff -NurpP --minimal linux-3.4.57/include/linux/netdevice.h linux-3.4.57-vs2.3.3.9/include/linux/netdevice.h 7861diff -NurpP --minimal linux-3.10.17/include/linux/netdevice.h linux-3.10.17-vs2.3.6.6/include/linux/netdevice.h
8496--- linux-3.4.57/include/linux/netdevice.h 2013-08-13 14:13:35.000000000 +0000 7862--- linux-3.10.17/include/linux/netdevice.h 2013-07-14 17:01:32.000000000 +0000
8497+++ linux-3.4.57-vs2.3.3.9/include/linux/netdevice.h 2013-07-14 13:38:35.000000000 +0000 7863+++ linux-3.10.17-vs2.3.6.6/include/linux/netdevice.h 2013-08-22 20:30:00.000000000 +0000
8498@@ -1624,6 +1624,7 @@ extern void netdev_resync_ops(struct ne 7864@@ -1694,6 +1694,7 @@ extern int init_dummy_netdev(struct net
8499 7865
8500 extern struct net_device *dev_get_by_index(struct net *net, int ifindex); 7866 extern struct net_device *dev_get_by_index(struct net *net, int ifindex);
8501 extern struct net_device *__dev_get_by_index(struct net *net, int ifindex); 7867 extern struct net_device *__dev_get_by_index(struct net *net, int ifindex);
8502+extern struct net_device *dev_get_by_index_real_rcu(struct net *net, int ifindex); 7868+extern struct net_device *dev_get_by_index_real_rcu(struct net *net, int ifindex);
8503 extern struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex); 7869 extern struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex);
7870 extern int netdev_get_name(struct net *net, char *name, int ifindex);
8504 extern int dev_restart(struct net_device *dev); 7871 extern int dev_restart(struct net_device *dev);
8505 #ifdef CONFIG_NETPOLL_TRAP 7872diff -NurpP --minimal linux-3.10.17/include/linux/nsproxy.h linux-3.10.17-vs2.3.6.6/include/linux/nsproxy.h
8506diff -NurpP --minimal linux-3.4.57/include/linux/nfs_mount.h linux-3.4.57-vs2.3.3.9/include/linux/nfs_mount.h 7873--- linux-3.10.17/include/linux/nsproxy.h 2013-02-19 13:58:51.000000000 +0000
8507--- linux-3.4.57/include/linux/nfs_mount.h 2011-01-05 20:50:31.000000000 +0000 7874+++ linux-3.10.17-vs2.3.6.6/include/linux/nsproxy.h 2013-08-22 20:30:00.000000000 +0000
8508+++ linux-3.4.57-vs2.3.3.9/include/linux/nfs_mount.h 2012-05-21 16:15:05.000000000 +0000
8509@@ -63,7 +63,8 @@ struct nfs_mount_data {
8510 #define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 */
8511 #define NFS_MOUNT_NORDIRPLUS 0x4000 /* 5 */
8512 #define NFS_MOUNT_UNSHARED 0x8000 /* 5 */
8513-#define NFS_MOUNT_FLAGMASK 0xFFFF
8514+#define NFS_MOUNT_TAGGED 0x10000 /* context tagging */
8515+#define NFS_MOUNT_FLAGMASK 0x1FFFF
8516
8517 /* The following are for internal use only */
8518 #define NFS_MOUNT_LOOKUP_CACHE_NONEG 0x10000
8519diff -NurpP --minimal linux-3.4.57/include/linux/nsproxy.h linux-3.4.57-vs2.3.3.9/include/linux/nsproxy.h
8520--- linux-3.4.57/include/linux/nsproxy.h 2011-10-24 16:45:32.000000000 +0000
8521+++ linux-3.4.57-vs2.3.3.9/include/linux/nsproxy.h 2012-05-21 16:15:05.000000000 +0000
8522@@ -3,6 +3,7 @@ 7875@@ -3,6 +3,7 @@
8523 7876
8524 #include <linux/spinlock.h> 7877 #include <linux/spinlock.h>
@@ -8536,7 +7889,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/nsproxy.h linux-3.4.57-vs2.3.3.
8536 void switch_task_namespaces(struct task_struct *tsk, struct nsproxy *new); 7889 void switch_task_namespaces(struct task_struct *tsk, struct nsproxy *new);
8537 void free_nsproxy(struct nsproxy *ns); 7890 void free_nsproxy(struct nsproxy *ns);
8538@@ -70,16 +72,26 @@ int unshare_nsproxy_namespaces(unsigned 7891@@ -70,16 +72,26 @@ int unshare_nsproxy_namespaces(unsigned
8539 struct fs_struct *); 7892 struct cred *, struct fs_struct *);
8540 int __init nsproxy_cache_init(void); 7893 int __init nsproxy_cache_init(void);
8541 7894
8542-static inline void put_nsproxy(struct nsproxy *ns) 7895-static inline void put_nsproxy(struct nsproxy *ns)
@@ -8568,9 +7921,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/nsproxy.h linux-3.4.57-vs2.3.3.
8568 } 7921 }
8569 7922
8570 #endif 7923 #endif
8571diff -NurpP --minimal linux-3.4.57/include/linux/pid.h linux-3.4.57-vs2.3.3.9/include/linux/pid.h 7924diff -NurpP --minimal linux-3.10.17/include/linux/pid.h linux-3.10.17-vs2.3.6.6/include/linux/pid.h
8572--- linux-3.4.57/include/linux/pid.h 2011-07-22 09:18:11.000000000 +0000 7925--- linux-3.10.17/include/linux/pid.h 2013-05-31 13:45:28.000000000 +0000
8573+++ linux-3.4.57-vs2.3.3.9/include/linux/pid.h 2012-05-21 16:15:05.000000000 +0000 7926+++ linux-3.10.17-vs2.3.6.6/include/linux/pid.h 2013-08-22 20:30:00.000000000 +0000
8574@@ -8,7 +8,8 @@ enum pid_type 7927@@ -8,7 +8,8 @@ enum pid_type
8575 PIDTYPE_PID, 7928 PIDTYPE_PID,
8576 PIDTYPE_PGID, 7929 PIDTYPE_PGID,
@@ -8581,7 +7934,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/pid.h linux-3.4.57-vs2.3.3.9/in
8581 }; 7934 };
8582 7935
8583 /* 7936 /*
8584@@ -171,6 +172,7 @@ static inline pid_t pid_nr(struct pid *p 7937@@ -172,6 +173,7 @@ static inline pid_t pid_nr(struct pid *p
8585 } 7938 }
8586 7939
8587 pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns); 7940 pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns);
@@ -8589,47 +7942,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/pid.h linux-3.4.57-vs2.3.3.9/in
8589 pid_t pid_vnr(struct pid *pid); 7942 pid_t pid_vnr(struct pid *pid);
8590 7943
8591 #define do_each_pid_task(pid, type, task) \ 7944 #define do_each_pid_task(pid, type, task) \
8592diff -NurpP --minimal linux-3.4.57/include/linux/proc_fs.h linux-3.4.57-vs2.3.3.9/include/linux/proc_fs.h 7945diff -NurpP --minimal linux-3.10.17/include/linux/quotaops.h linux-3.10.17-vs2.3.6.6/include/linux/quotaops.h
8593--- linux-3.4.57/include/linux/proc_fs.h 2012-03-19 18:47:28.000000000 +0000 7946--- linux-3.10.17/include/linux/quotaops.h 2012-12-11 03:30:57.000000000 +0000
8594+++ linux-3.4.57-vs2.3.3.9/include/linux/proc_fs.h 2012-05-21 16:15:05.000000000 +0000 7947+++ linux-3.10.17-vs2.3.6.6/include/linux/quotaops.h 2013-08-22 20:30:00.000000000 +0000
8595@@ -54,6 +54,7 @@ struct proc_dir_entry {
8596 nlink_t nlink;
8597 uid_t uid;
8598 gid_t gid;
8599+ int vx_flags;
8600 loff_t size;
8601 const struct inode_operations *proc_iops;
8602 /*
8603@@ -252,12 +253,18 @@ extern const struct proc_ns_operations n
8604 extern const struct proc_ns_operations utsns_operations;
8605 extern const struct proc_ns_operations ipcns_operations;
8606
8607+struct vx_info;
8608+struct nx_info;
8609+
8610 union proc_op {
8611 int (*proc_get_link)(struct dentry *, struct path *);
8612 int (*proc_read)(struct task_struct *task, char *page);
8613 int (*proc_show)(struct seq_file *m,
8614 struct pid_namespace *ns, struct pid *pid,
8615 struct task_struct *task);
8616+ int (*proc_vs_read)(char *page);
8617+ int (*proc_vxi_read)(struct vx_info *vxi, char *page);
8618+ int (*proc_nxi_read)(struct nx_info *nxi, char *page);
8619 };
8620
8621 struct ctl_table_header;
8622@@ -265,6 +272,7 @@ struct ctl_table;
8623
8624 struct proc_inode {
8625 struct pid *pid;
8626+ int vx_flags;
8627 int fd;
8628 union proc_op op;
8629 struct proc_dir_entry *pde;
8630diff -NurpP --minimal linux-3.4.57/include/linux/quotaops.h linux-3.4.57-vs2.3.3.9/include/linux/quotaops.h
8631--- linux-3.4.57/include/linux/quotaops.h 2012-01-09 15:14:58.000000000 +0000
8632+++ linux-3.4.57-vs2.3.3.9/include/linux/quotaops.h 2012-05-21 16:15:05.000000000 +0000
8633@@ -8,6 +8,7 @@ 7948@@ -8,6 +8,7 @@
8634 #define _LINUX_QUOTAOPS_ 7949 #define _LINUX_QUOTAOPS_
8635 7950
@@ -8638,7 +7953,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/quotaops.h linux-3.4.57-vs2.3.3
8638 7953
8639 #define DQUOT_SPACE_WARN 0x1 7954 #define DQUOT_SPACE_WARN 0x1
8640 #define DQUOT_SPACE_RESERVE 0x2 7955 #define DQUOT_SPACE_RESERVE 0x2
8641@@ -204,11 +205,12 @@ static inline void dquot_drop(struct ino 7956@@ -205,11 +206,12 @@ static inline void dquot_drop(struct ino
8642 7957
8643 static inline int dquot_alloc_inode(const struct inode *inode) 7958 static inline int dquot_alloc_inode(const struct inode *inode)
8644 { 7959 {
@@ -8652,7 +7967,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/quotaops.h linux-3.4.57-vs2.3.3
8652 } 7967 }
8653 7968
8654 static inline int dquot_transfer(struct inode *inode, struct iattr *iattr) 7969 static inline int dquot_transfer(struct inode *inode, struct iattr *iattr)
8655@@ -219,6 +221,10 @@ static inline int dquot_transfer(struct 7970@@ -220,6 +222,10 @@ static inline int dquot_transfer(struct
8656 static inline int __dquot_alloc_space(struct inode *inode, qsize_t number, 7971 static inline int __dquot_alloc_space(struct inode *inode, qsize_t number,
8657 int flags) 7972 int flags)
8658 { 7973 {
@@ -8663,7 +7978,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/quotaops.h linux-3.4.57-vs2.3.3
8663 if (!(flags & DQUOT_SPACE_RESERVE)) 7978 if (!(flags & DQUOT_SPACE_RESERVE))
8664 inode_add_bytes(inode, number); 7979 inode_add_bytes(inode, number);
8665 return 0; 7980 return 0;
8666@@ -229,6 +235,7 @@ static inline void __dquot_free_space(st 7981@@ -230,6 +236,7 @@ static inline void __dquot_free_space(st
8667 { 7982 {
8668 if (!(flags & DQUOT_SPACE_RESERVE)) 7983 if (!(flags & DQUOT_SPACE_RESERVE))
8669 inode_sub_bytes(inode, number); 7984 inode_sub_bytes(inode, number);
@@ -8671,36 +7986,25 @@ diff -NurpP --minimal linux-3.4.57/include/linux/quotaops.h linux-3.4.57-vs2.3.3
8671 } 7986 }
8672 7987
8673 static inline int dquot_claim_space_nodirty(struct inode *inode, qsize_t number) 7988 static inline int dquot_claim_space_nodirty(struct inode *inode, qsize_t number)
8674diff -NurpP --minimal linux-3.4.57/include/linux/reboot.h linux-3.4.57-vs2.3.3.9/include/linux/reboot.h 7989diff -NurpP --minimal linux-3.10.17/include/linux/sched.h linux-3.10.17-vs2.3.6.6/include/linux/sched.h
8675--- linux-3.4.57/include/linux/reboot.h 2011-10-24 16:45:32.000000000 +0000 7990--- linux-3.10.17/include/linux/sched.h 2013-07-14 17:01:33.000000000 +0000
8676+++ linux-3.4.57-vs2.3.3.9/include/linux/reboot.h 2012-05-21 16:15:05.000000000 +0000 7991+++ linux-3.10.17-vs2.3.6.6/include/linux/sched.h 2013-10-09 17:37:22.000000000 +0000
8677@@ -33,6 +33,7 @@ 7992@@ -1233,6 +1233,14 @@ struct task_struct {
8678 #define LINUX_REBOOT_CMD_RESTART2 0xA1B2C3D4
8679 #define LINUX_REBOOT_CMD_SW_SUSPEND 0xD000FCE2
8680 #define LINUX_REBOOT_CMD_KEXEC 0x45584543
8681+#define LINUX_REBOOT_CMD_OOM 0xDEADBEEF
8682
8683
8684 #ifdef __KERNEL__
8685diff -NurpP --minimal linux-3.4.57/include/linux/sched.h linux-3.4.57-vs2.3.3.9/include/linux/sched.h
8686--- linux-3.4.57/include/linux/sched.h 2013-08-13 14:13:36.000000000 +0000
8687+++ linux-3.4.57-vs2.3.3.9/include/linux/sched.h 2013-02-11 23:37:30.000000000 +0000
8688@@ -1455,6 +1455,14 @@ struct task_struct {
8689 #endif 7993 #endif
8690 seccomp_t seccomp; 7994 struct seccomp seccomp;
8691 7995
8692+/* vserver context data */ 7996+/* vserver context data */
8693+ struct vx_info *vx_info; 7997+ struct vx_info *vx_info;
8694+ struct nx_info *nx_info; 7998+ struct nx_info *nx_info;
8695+ 7999+
8696+ xid_t xid; 8000+ vxid_t xid;
8697+ nid_t nid; 8001+ vnid_t nid;
8698+ tag_t tag; 8002+ vtag_t tag;
8699+ 8003+
8700 /* Thread group tracking */ 8004 /* Thread group tracking */
8701 u32 parent_exec_id; 8005 u32 parent_exec_id;
8702 u32 self_exec_id; 8006 u32 self_exec_id;
8703@@ -1699,6 +1707,11 @@ struct pid_namespace; 8007@@ -1476,6 +1484,11 @@ struct pid_namespace;
8704 pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type, 8008 pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
8705 struct pid_namespace *ns); 8009 struct pid_namespace *ns);
8706 8010
@@ -8712,7 +8016,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/sched.h linux-3.4.57-vs2.3.3.9/
8712 static inline pid_t task_pid_nr(struct task_struct *tsk) 8016 static inline pid_t task_pid_nr(struct task_struct *tsk)
8713 { 8017 {
8714 return tsk->pid; 8018 return tsk->pid;
8715@@ -1712,7 +1725,8 @@ static inline pid_t task_pid_nr_ns(struc 8019@@ -1489,7 +1502,8 @@ static inline pid_t task_pid_nr_ns(struc
8716 8020
8717 static inline pid_t task_pid_vnr(struct task_struct *tsk) 8021 static inline pid_t task_pid_vnr(struct task_struct *tsk)
8718 { 8022 {
@@ -8722,7 +8026,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/sched.h linux-3.4.57-vs2.3.3.9/
8722 } 8026 }
8723 8027
8724 8028
8725@@ -1725,7 +1739,7 @@ pid_t task_tgid_nr_ns(struct task_struct 8029@@ -1502,7 +1516,7 @@ pid_t task_tgid_nr_ns(struct task_struct
8726 8030
8727 static inline pid_t task_tgid_vnr(struct task_struct *tsk) 8031 static inline pid_t task_tgid_vnr(struct task_struct *tsk)
8728 { 8032 {
@@ -8731,10 +8035,10 @@ diff -NurpP --minimal linux-3.4.57/include/linux/sched.h linux-3.4.57-vs2.3.3.9/
8731 } 8035 }
8732 8036
8733 8037
8734diff -NurpP --minimal linux-3.4.57/include/linux/shmem_fs.h linux-3.4.57-vs2.3.3.9/include/linux/shmem_fs.h 8038diff -NurpP --minimal linux-3.10.17/include/linux/shmem_fs.h linux-3.10.17-vs2.3.6.6/include/linux/shmem_fs.h
8735--- linux-3.4.57/include/linux/shmem_fs.h 2012-03-19 18:47:29.000000000 +0000 8039--- linux-3.10.17/include/linux/shmem_fs.h 2012-12-11 03:30:57.000000000 +0000
8736+++ linux-3.4.57-vs2.3.3.9/include/linux/shmem_fs.h 2012-05-21 16:15:05.000000000 +0000 8040+++ linux-3.10.17-vs2.3.6.6/include/linux/shmem_fs.h 2013-08-22 20:30:00.000000000 +0000
8737@@ -8,6 +8,9 @@ 8041@@ -9,6 +9,9 @@
8738 8042
8739 /* inode in-kernel data */ 8043 /* inode in-kernel data */
8740 8044
@@ -8744,31 +8048,31 @@ diff -NurpP --minimal linux-3.4.57/include/linux/shmem_fs.h linux-3.4.57-vs2.3.3
8744 struct shmem_inode_info { 8048 struct shmem_inode_info {
8745 spinlock_t lock; 8049 spinlock_t lock;
8746 unsigned long flags; 8050 unsigned long flags;
8747diff -NurpP --minimal linux-3.4.57/include/linux/stat.h linux-3.4.57-vs2.3.3.9/include/linux/stat.h 8051diff -NurpP --minimal linux-3.10.17/include/linux/stat.h linux-3.10.17-vs2.3.6.6/include/linux/stat.h
8748--- linux-3.4.57/include/linux/stat.h 2008-12-24 23:26:37.000000000 +0000 8052--- linux-3.10.17/include/linux/stat.h 2012-12-11 03:30:57.000000000 +0000
8749+++ linux-3.4.57-vs2.3.3.9/include/linux/stat.h 2012-05-21 16:15:05.000000000 +0000 8053+++ linux-3.10.17-vs2.3.6.6/include/linux/stat.h 2013-08-22 20:30:00.000000000 +0000
8750@@ -66,6 +66,7 @@ struct kstat { 8054@@ -25,6 +25,7 @@ struct kstat {
8751 unsigned int nlink; 8055 unsigned int nlink;
8752 uid_t uid; 8056 kuid_t uid;
8753 gid_t gid; 8057 kgid_t gid;
8754+ tag_t tag; 8058+ ktag_t tag;
8755 dev_t rdev; 8059 dev_t rdev;
8756 loff_t size; 8060 loff_t size;
8757 struct timespec atime; 8061 struct timespec atime;
8758diff -NurpP --minimal linux-3.4.57/include/linux/sunrpc/auth.h linux-3.4.57-vs2.3.3.9/include/linux/sunrpc/auth.h 8062diff -NurpP --minimal linux-3.10.17/include/linux/sunrpc/auth.h linux-3.10.17-vs2.3.6.6/include/linux/sunrpc/auth.h
8759--- linux-3.4.57/include/linux/sunrpc/auth.h 2012-05-21 16:07:32.000000000 +0000 8063--- linux-3.10.17/include/linux/sunrpc/auth.h 2013-07-14 17:01:33.000000000 +0000
8760+++ linux-3.4.57-vs2.3.3.9/include/linux/sunrpc/auth.h 2012-05-21 16:15:05.000000000 +0000 8064+++ linux-3.10.17-vs2.3.6.6/include/linux/sunrpc/auth.h 2013-08-22 20:30:00.000000000 +0000
8761@@ -25,6 +25,7 @@ 8065@@ -28,6 +28,7 @@ struct rpcsec_gss_info;
8762 struct auth_cred { 8066 struct auth_cred {
8763 uid_t uid; 8067 kuid_t uid;
8764 gid_t gid; 8068 kgid_t gid;
8765+ tag_t tag; 8069+ ktag_t tag;
8766 struct group_info *group_info; 8070 struct group_info *group_info;
8767 const char *principal; 8071 const char *principal;
8768 unsigned char machine_cred : 1; 8072 unsigned char machine_cred : 1;
8769diff -NurpP --minimal linux-3.4.57/include/linux/sunrpc/clnt.h linux-3.4.57-vs2.3.3.9/include/linux/sunrpc/clnt.h 8073diff -NurpP --minimal linux-3.10.17/include/linux/sunrpc/clnt.h linux-3.10.17-vs2.3.6.6/include/linux/sunrpc/clnt.h
8770--- linux-3.4.57/include/linux/sunrpc/clnt.h 2012-05-21 16:07:32.000000000 +0000 8074--- linux-3.10.17/include/linux/sunrpc/clnt.h 2013-07-14 17:01:33.000000000 +0000
8771+++ linux-3.4.57-vs2.3.3.9/include/linux/sunrpc/clnt.h 2012-05-21 16:15:05.000000000 +0000 8075+++ linux-3.10.17-vs2.3.6.6/include/linux/sunrpc/clnt.h 2013-08-22 20:30:00.000000000 +0000
8772@@ -49,7 +49,8 @@ struct rpc_clnt { 8076@@ -49,7 +49,8 @@ struct rpc_clnt {
8773 unsigned int cl_softrtry : 1,/* soft timeouts */ 8077 unsigned int cl_softrtry : 1,/* soft timeouts */
8774 cl_discrtry : 1,/* disconnect before retry */ 8078 cl_discrtry : 1,/* disconnect before retry */
@@ -8779,28 +8083,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/sunrpc/clnt.h linux-3.4.57-vs2.
8779 8083
8780 struct rpc_rtt * cl_rtt; /* RTO estimator data */ 8084 struct rpc_rtt * cl_rtt; /* RTO estimator data */
8781 const struct rpc_timeout *cl_timeout; /* Timeout strategy */ 8085 const struct rpc_timeout *cl_timeout; /* Timeout strategy */
8782diff -NurpP --minimal linux-3.4.57/include/linux/sysctl.h linux-3.4.57-vs2.3.3.9/include/linux/sysctl.h 8086diff -NurpP --minimal linux-3.10.17/include/linux/sysfs.h linux-3.10.17-vs2.3.6.6/include/linux/sysfs.h
8783--- linux-3.4.57/include/linux/sysctl.h 2012-05-21 16:07:32.000000000 +0000 8087--- linux-3.10.17/include/linux/sysfs.h 2013-05-31 13:45:28.000000000 +0000
8784+++ linux-3.4.57-vs2.3.3.9/include/linux/sysctl.h 2012-05-21 16:15:05.000000000 +0000 8088+++ linux-3.10.17-vs2.3.6.6/include/linux/sysfs.h 2013-08-22 20:30:00.000000000 +0000
8785@@ -60,6 +60,7 @@ enum
8786 CTL_ABI=9, /* Binary emulation */
8787 CTL_CPU=10, /* CPU stuff (speed scaling, etc) */
8788 CTL_ARLAN=254, /* arlan wireless driver */
8789+ CTL_VSERVER=4242, /* Linux-VServer debug */
8790 CTL_S390DBF=5677, /* s390 debug */
8791 CTL_SUNRPC=7249, /* sunrpc debug */
8792 CTL_PM=9899, /* frv power management */
8793@@ -94,6 +95,7 @@ enum
8794
8795 KERN_PANIC=15, /* int: panic timeout */
8796 KERN_REALROOTDEV=16, /* real root device to mount after initrd */
8797+ KERN_VSHELPER=17, /* string: path to vshelper policy agent */
8798
8799 KERN_SPARC_REBOOT=21, /* reboot command on Sparc */
8800 KERN_CTLALTDEL=22, /* int: allow ctl-alt-del to reboot */
8801diff -NurpP --minimal linux-3.4.57/include/linux/sysfs.h linux-3.4.57-vs2.3.3.9/include/linux/sysfs.h
8802--- linux-3.4.57/include/linux/sysfs.h 2012-03-19 18:47:29.000000000 +0000
8803+++ linux-3.4.57-vs2.3.3.9/include/linux/sysfs.h 2012-05-21 16:15:05.000000000 +0000
8804@@ -19,6 +19,8 @@ 8089@@ -19,6 +19,8 @@
8805 #include <linux/kobject_ns.h> 8090 #include <linux/kobject_ns.h>
8806 #include <linux/atomic.h> 8091 #include <linux/atomic.h>
@@ -8810,63 +8095,144 @@ diff -NurpP --minimal linux-3.4.57/include/linux/sysfs.h linux-3.4.57-vs2.3.3.9/
8810 struct kobject; 8095 struct kobject;
8811 struct module; 8096 struct module;
8812 enum kobj_ns_type; 8097 enum kobj_ns_type;
8813diff -NurpP --minimal linux-3.4.57/include/linux/time.h linux-3.4.57-vs2.3.3.9/include/linux/time.h 8098diff -NurpP --minimal linux-3.10.17/include/linux/types.h linux-3.10.17-vs2.3.6.6/include/linux/types.h
8814--- linux-3.4.57/include/linux/time.h 2013-08-13 14:13:36.000000000 +0000 8099--- linux-3.10.17/include/linux/types.h 2013-02-19 13:58:52.000000000 +0000
8815+++ linux-3.4.57-vs2.3.3.9/include/linux/time.h 2012-10-22 13:09:53.000000000 +0000 8100+++ linux-3.10.17-vs2.3.6.6/include/linux/types.h 2013-08-22 20:30:00.000000000 +0000
8816@@ -281,6 +281,8 @@ static __always_inline void timespec_add 8101@@ -32,6 +32,9 @@ typedef __kernel_uid32_t uid_t;
8817 a->tv_nsec = ns;
8818 }
8819
8820+#include <linux/vs_time.h>
8821+
8822 #endif /* __KERNEL__ */
8823
8824 /*
8825diff -NurpP --minimal linux-3.4.57/include/linux/types.h linux-3.4.57-vs2.3.3.9/include/linux/types.h
8826--- linux-3.4.57/include/linux/types.h 2012-05-21 16:07:32.000000000 +0000
8827+++ linux-3.4.57-vs2.3.3.9/include/linux/types.h 2012-05-21 16:15:05.000000000 +0000
8828@@ -41,6 +41,9 @@ typedef __kernel_uid32_t uid_t;
8829 typedef __kernel_gid32_t gid_t; 8102 typedef __kernel_gid32_t gid_t;
8830 typedef __kernel_uid16_t uid16_t; 8103 typedef __kernel_uid16_t uid16_t;
8831 typedef __kernel_gid16_t gid16_t; 8104 typedef __kernel_gid16_t gid16_t;
8832+typedef unsigned int xid_t; 8105+typedef unsigned int vxid_t;
8833+typedef unsigned int nid_t; 8106+typedef unsigned int vnid_t;
8834+typedef unsigned int tag_t; 8107+typedef unsigned int vtag_t;
8835 8108
8836 typedef unsigned long uintptr_t; 8109 typedef unsigned long uintptr_t;
8837 8110
8838diff -NurpP --minimal linux-3.4.57/include/linux/utsname.h linux-3.4.57-vs2.3.3.9/include/linux/utsname.h 8111diff -NurpP --minimal linux-3.10.17/include/linux/uidgid.h linux-3.10.17-vs2.3.6.6/include/linux/uidgid.h
8839--- linux-3.4.57/include/linux/utsname.h 2012-01-09 15:14:59.000000000 +0000 8112--- linux-3.10.17/include/linux/uidgid.h 2012-12-11 03:30:57.000000000 +0000
8840+++ linux-3.4.57-vs2.3.3.9/include/linux/utsname.h 2012-05-21 16:15:05.000000000 +0000 8113+++ linux-3.10.17-vs2.3.6.6/include/linux/uidgid.h 2013-08-22 20:30:00.000000000 +0000
8841@@ -62,7 +62,8 @@ static inline void get_uts_ns(struct uts 8114@@ -23,13 +23,17 @@ typedef struct {
8115 uid_t val;
8116 } kuid_t;
8117
8118-
8119 typedef struct {
8120 gid_t val;
8121 } kgid_t;
8122
8123+typedef struct {
8124+ vtag_t val;
8125+} ktag_t;
8126+
8127 #define KUIDT_INIT(value) (kuid_t){ value }
8128 #define KGIDT_INIT(value) (kgid_t){ value }
8129+#define KTAGT_INIT(value) (ktag_t){ value }
8130
8131 static inline uid_t __kuid_val(kuid_t uid)
8132 {
8133@@ -41,10 +45,16 @@ static inline gid_t __kgid_val(kgid_t gi
8134 return gid.val;
8842 } 8135 }
8843 8136
8844 extern struct uts_namespace *copy_utsname(unsigned long flags, 8137+static inline vtag_t __ktag_val(ktag_t tag)
8845- struct task_struct *tsk); 8138+{
8846+ struct uts_namespace *old_ns, 8139+ return tag.val;
8847+ struct user_namespace *user_ns); 8140+}
8848 extern void free_uts_ns(struct kref *kref); 8141+
8142 #else
8143
8144 typedef uid_t kuid_t;
8145 typedef gid_t kgid_t;
8146+typedef vtag_t ktag_t;
8147
8148 static inline uid_t __kuid_val(kuid_t uid)
8149 {
8150@@ -56,16 +66,24 @@ static inline gid_t __kgid_val(kgid_t gi
8151 return gid;
8152 }
8153
8154+static inline vtag_t __ktag_val(ktag_t tag)
8155+{
8156+ return tag;
8157+}
8158+
8159 #define KUIDT_INIT(value) ((kuid_t) value )
8160 #define KGIDT_INIT(value) ((kgid_t) value )
8161+#define KTAGT_INIT(value) ((ktag_t) value )
8162
8163 #endif
8164
8165 #define GLOBAL_ROOT_UID KUIDT_INIT(0)
8166 #define GLOBAL_ROOT_GID KGIDT_INIT(0)
8167+#define GLOBAL_ROOT_TAG KTAGT_INIT(0)
8849 8168
8850 static inline void put_uts_ns(struct uts_namespace *ns) 8169 #define INVALID_UID KUIDT_INIT(-1)
8851@@ -79,12 +80,13 @@ static inline void put_uts_ns(struct uts 8170 #define INVALID_GID KGIDT_INIT(-1)
8171+#define INVALID_TAG KTAGT_INIT(-1)
8172
8173 static inline bool uid_eq(kuid_t left, kuid_t right)
8174 {
8175@@ -77,6 +95,11 @@ static inline bool gid_eq(kgid_t left, k
8176 return __kgid_val(left) == __kgid_val(right);
8852 } 8177 }
8853 8178
8854 static inline struct uts_namespace *copy_utsname(unsigned long flags, 8179+static inline bool tag_eq(ktag_t left, ktag_t right)
8855- struct task_struct *tsk) 8180+{
8856+ struct uts_namespace *old_ns, 8181+ return __ktag_val(left) == __ktag_val(right);
8857+ struct user_namespace *user_ns) 8182+}
8183+
8184 static inline bool uid_gt(kuid_t left, kuid_t right)
8858 { 8185 {
8859 if (flags & CLONE_NEWUTS) 8186 return __kuid_val(left) > __kuid_val(right);
8860 return ERR_PTR(-EINVAL); 8187@@ -127,13 +150,21 @@ static inline bool gid_valid(kgid_t gid)
8188 return !gid_eq(gid, INVALID_GID);
8189 }
8190
8191+static inline bool tag_valid(ktag_t tag)
8192+{
8193+ return !tag_eq(tag, INVALID_TAG);
8194+}
8195+
8196 #ifdef CONFIG_USER_NS
8861 8197
8862- return tsk->nsproxy->uts_ns; 8198 extern kuid_t make_kuid(struct user_namespace *from, uid_t uid);
8863+ return old_ns; 8199 extern kgid_t make_kgid(struct user_namespace *from, gid_t gid);
8200+extern krag_t make_ktag(struct user_namespace *from, gid_t gid);
8201
8202 extern uid_t from_kuid(struct user_namespace *to, kuid_t uid);
8203 extern gid_t from_kgid(struct user_namespace *to, kgid_t gid);
8204+extern vtag_t from_ktag(struct user_namespace *to, ktag_t tag);
8205+
8206 extern uid_t from_kuid_munged(struct user_namespace *to, kuid_t uid);
8207 extern gid_t from_kgid_munged(struct user_namespace *to, kgid_t gid);
8208
8209@@ -159,6 +190,11 @@ static inline kgid_t make_kgid(struct us
8210 return KGIDT_INIT(gid);
8864 } 8211 }
8865 #endif
8866 8212
8867diff -NurpP --minimal linux-3.4.57/include/linux/vroot.h linux-3.4.57-vs2.3.3.9/include/linux/vroot.h 8213+static inline ktag_t make_ktag(struct user_namespace *from, vtag_t tag)
8868--- linux-3.4.57/include/linux/vroot.h 1970-01-01 00:00:00.000000000 +0000 8214+{
8869+++ linux-3.4.57-vs2.3.3.9/include/linux/vroot.h 2012-05-21 16:15:05.000000000 +0000 8215+ return KTAGT_INIT(tag);
8216+}
8217+
8218 static inline uid_t from_kuid(struct user_namespace *to, kuid_t kuid)
8219 {
8220 return __kuid_val(kuid);
8221@@ -169,6 +205,11 @@ static inline gid_t from_kgid(struct use
8222 return __kgid_val(kgid);
8223 }
8224
8225+static inline vtag_t from_ktag(struct user_namespace *to, ktag_t ktag)
8226+{
8227+ return __ktag_val(ktag);
8228+}
8229+
8230 static inline uid_t from_kuid_munged(struct user_namespace *to, kuid_t kuid)
8231 {
8232 uid_t uid = from_kuid(to, kuid);
8233diff -NurpP --minimal linux-3.10.17/include/linux/vroot.h linux-3.10.17-vs2.3.6.6/include/linux/vroot.h
8234--- linux-3.10.17/include/linux/vroot.h 1970-01-01 00:00:00.000000000 +0000
8235+++ linux-3.10.17-vs2.3.6.6/include/linux/vroot.h 2013-08-22 20:30:00.000000000 +0000
8870@@ -0,0 +1,51 @@ 8236@@ -0,0 +1,51 @@
8871+ 8237+
8872+/* 8238+/*
@@ -8919,9 +8285,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vroot.h linux-3.4.57-vs2.3.3.9/
8919+#define VROOT_CLR_DEV 0x5601 8285+#define VROOT_CLR_DEV 0x5601
8920+ 8286+
8921+#endif /* _LINUX_VROOT_H */ 8287+#endif /* _LINUX_VROOT_H */
8922diff -NurpP --minimal linux-3.4.57/include/linux/vs_base.h linux-3.4.57-vs2.3.3.9/include/linux/vs_base.h 8288diff -NurpP --minimal linux-3.10.17/include/linux/vs_base.h linux-3.10.17-vs2.3.6.6/include/linux/vs_base.h
8923--- linux-3.4.57/include/linux/vs_base.h 1970-01-01 00:00:00.000000000 +0000 8289--- linux-3.10.17/include/linux/vs_base.h 1970-01-01 00:00:00.000000000 +0000
8924+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_base.h 2012-05-21 16:15:05.000000000 +0000 8290+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_base.h 2013-08-22 20:30:00.000000000 +0000
8925@@ -0,0 +1,10 @@ 8291@@ -0,0 +1,10 @@
8926+#ifndef _VS_BASE_H 8292+#ifndef _VS_BASE_H
8927+#define _VS_BASE_H 8293+#define _VS_BASE_H
@@ -8933,9 +8299,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_base.h linux-3.4.57-vs2.3.3.
8933+#else 8299+#else
8934+#warning duplicate inclusion 8300+#warning duplicate inclusion
8935+#endif 8301+#endif
8936diff -NurpP --minimal linux-3.4.57/include/linux/vs_context.h linux-3.4.57-vs2.3.3.9/include/linux/vs_context.h 8302diff -NurpP --minimal linux-3.10.17/include/linux/vs_context.h linux-3.10.17-vs2.3.6.6/include/linux/vs_context.h
8937--- linux-3.4.57/include/linux/vs_context.h 1970-01-01 00:00:00.000000000 +0000 8303--- linux-3.10.17/include/linux/vs_context.h 1970-01-01 00:00:00.000000000 +0000
8938+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_context.h 2012-05-21 16:15:05.000000000 +0000 8304+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_context.h 2013-08-22 20:30:00.000000000 +0000
8939@@ -0,0 +1,242 @@ 8305@@ -0,0 +1,242 @@
8940+#ifndef _VS_CONTEXT_H 8306+#ifndef _VS_CONTEXT_H
8941+#define _VS_CONTEXT_H 8307+#define _VS_CONTEXT_H
@@ -9148,7 +8514,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_context.h linux-3.4.57-vs2.3
9148+static inline void __enter_vx_admin(struct vx_info_save *vxis) 8514+static inline void __enter_vx_admin(struct vx_info_save *vxis)
9149+{ 8515+{
9150+ vxis->vxi = xchg(&current->vx_info, NULL); 8516+ vxis->vxi = xchg(&current->vx_info, NULL);
9151+ vxis->xid = xchg(&current->xid, (xid_t)0); 8517+ vxis->xid = xchg(&current->xid, (vxid_t)0);
9152+} 8518+}
9153+ 8519+
9154+static inline void __leave_vx_admin(struct vx_info_save *vxis) 8520+static inline void __leave_vx_admin(struct vx_info_save *vxis)
@@ -9179,9 +8545,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_context.h linux-3.4.57-vs2.3
9179+#else 8545+#else
9180+#warning duplicate inclusion 8546+#warning duplicate inclusion
9181+#endif 8547+#endif
9182diff -NurpP --minimal linux-3.4.57/include/linux/vs_cowbl.h linux-3.4.57-vs2.3.3.9/include/linux/vs_cowbl.h 8548diff -NurpP --minimal linux-3.10.17/include/linux/vs_cowbl.h linux-3.10.17-vs2.3.6.6/include/linux/vs_cowbl.h
9183--- linux-3.4.57/include/linux/vs_cowbl.h 1970-01-01 00:00:00.000000000 +0000 8549--- linux-3.10.17/include/linux/vs_cowbl.h 1970-01-01 00:00:00.000000000 +0000
9184+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_cowbl.h 2012-05-21 16:15:05.000000000 +0000 8550+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_cowbl.h 2013-08-22 20:30:00.000000000 +0000
9185@@ -0,0 +1,48 @@ 8551@@ -0,0 +1,48 @@
9186+#ifndef _VS_COWBL_H 8552+#ifndef _VS_COWBL_H
9187+#define _VS_COWBL_H 8553+#define _VS_COWBL_H
@@ -9231,9 +8597,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_cowbl.h linux-3.4.57-vs2.3.3
9231+#else 8597+#else
9232+#warning duplicate inclusion 8598+#warning duplicate inclusion
9233+#endif 8599+#endif
9234diff -NurpP --minimal linux-3.4.57/include/linux/vs_cvirt.h linux-3.4.57-vs2.3.3.9/include/linux/vs_cvirt.h 8600diff -NurpP --minimal linux-3.10.17/include/linux/vs_cvirt.h linux-3.10.17-vs2.3.6.6/include/linux/vs_cvirt.h
9235--- linux-3.4.57/include/linux/vs_cvirt.h 1970-01-01 00:00:00.000000000 +0000 8601--- linux-3.10.17/include/linux/vs_cvirt.h 1970-01-01 00:00:00.000000000 +0000
9236+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_cvirt.h 2012-05-21 16:15:05.000000000 +0000 8602+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_cvirt.h 2013-08-22 20:30:00.000000000 +0000
9237@@ -0,0 +1,50 @@ 8603@@ -0,0 +1,50 @@
9238+#ifndef _VS_CVIRT_H 8604+#ifndef _VS_CVIRT_H
9239+#define _VS_CVIRT_H 8605+#define _VS_CVIRT_H
@@ -9285,9 +8651,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_cvirt.h linux-3.4.57-vs2.3.3
9285+#else 8651+#else
9286+#warning duplicate inclusion 8652+#warning duplicate inclusion
9287+#endif 8653+#endif
9288diff -NurpP --minimal linux-3.4.57/include/linux/vs_device.h linux-3.4.57-vs2.3.3.9/include/linux/vs_device.h 8654diff -NurpP --minimal linux-3.10.17/include/linux/vs_device.h linux-3.10.17-vs2.3.6.6/include/linux/vs_device.h
9289--- linux-3.4.57/include/linux/vs_device.h 1970-01-01 00:00:00.000000000 +0000 8655--- linux-3.10.17/include/linux/vs_device.h 1970-01-01 00:00:00.000000000 +0000
9290+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_device.h 2012-05-21 16:15:05.000000000 +0000 8656+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_device.h 2013-08-22 20:30:00.000000000 +0000
9291@@ -0,0 +1,45 @@ 8657@@ -0,0 +1,45 @@
9292+#ifndef _VS_DEVICE_H 8658+#ifndef _VS_DEVICE_H
9293+#define _VS_DEVICE_H 8659+#define _VS_DEVICE_H
@@ -9334,9 +8700,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_device.h linux-3.4.57-vs2.3.
9334+#else 8700+#else
9335+#warning duplicate inclusion 8701+#warning duplicate inclusion
9336+#endif 8702+#endif
9337diff -NurpP --minimal linux-3.4.57/include/linux/vs_dlimit.h linux-3.4.57-vs2.3.3.9/include/linux/vs_dlimit.h 8703diff -NurpP --minimal linux-3.10.17/include/linux/vs_dlimit.h linux-3.10.17-vs2.3.6.6/include/linux/vs_dlimit.h
9338--- linux-3.4.57/include/linux/vs_dlimit.h 1970-01-01 00:00:00.000000000 +0000 8704--- linux-3.10.17/include/linux/vs_dlimit.h 1970-01-01 00:00:00.000000000 +0000
9339+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_dlimit.h 2012-05-21 16:15:05.000000000 +0000 8705+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_dlimit.h 2013-08-22 20:30:00.000000000 +0000
9340@@ -0,0 +1,215 @@ 8706@@ -0,0 +1,215 @@
9341+#ifndef _VS_DLIMIT_H 8707+#ifndef _VS_DLIMIT_H
9342+#define _VS_DLIMIT_H 8708+#define _VS_DLIMIT_H
@@ -9386,7 +8752,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_dlimit.h linux-3.4.57-vs2.3.
9386+#define __dlimit_char(d) ((d) ? '*' : ' ') 8752+#define __dlimit_char(d) ((d) ? '*' : ' ')
9387+ 8753+
9388+static inline int __dl_alloc_space(struct super_block *sb, 8754+static inline int __dl_alloc_space(struct super_block *sb,
9389+ tag_t tag, dlsize_t nr, const char *file, int line) 8755+ vtag_t tag, dlsize_t nr, const char *file, int line)
9390+{ 8756+{
9391+ struct dl_info *dli = NULL; 8757+ struct dl_info *dli = NULL;
9392+ int ret = 0; 8758+ int ret = 0;
@@ -9412,7 +8778,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_dlimit.h linux-3.4.57-vs2.3.
9412+} 8778+}
9413+ 8779+
9414+static inline void __dl_free_space(struct super_block *sb, 8780+static inline void __dl_free_space(struct super_block *sb,
9415+ tag_t tag, dlsize_t nr, const char *_file, int _line) 8781+ vtag_t tag, dlsize_t nr, const char *_file, int _line)
9416+{ 8782+{
9417+ struct dl_info *dli = NULL; 8783+ struct dl_info *dli = NULL;
9418+ 8784+
@@ -9437,7 +8803,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_dlimit.h linux-3.4.57-vs2.3.
9437+} 8803+}
9438+ 8804+
9439+static inline int __dl_alloc_inode(struct super_block *sb, 8805+static inline int __dl_alloc_inode(struct super_block *sb,
9440+ tag_t tag, const char *_file, int _line) 8806+ vtag_t tag, const char *_file, int _line)
9441+{ 8807+{
9442+ struct dl_info *dli; 8808+ struct dl_info *dli;
9443+ int ret = 0; 8809+ int ret = 0;
@@ -9459,7 +8825,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_dlimit.h linux-3.4.57-vs2.3.
9459+} 8825+}
9460+ 8826+
9461+static inline void __dl_free_inode(struct super_block *sb, 8827+static inline void __dl_free_inode(struct super_block *sb,
9462+ tag_t tag, const char *_file, int _line) 8828+ vtag_t tag, const char *_file, int _line)
9463+{ 8829+{
9464+ struct dl_info *dli; 8830+ struct dl_info *dli;
9465+ 8831+
@@ -9480,7 +8846,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_dlimit.h linux-3.4.57-vs2.3.
9480+ sb, tag, __dlimit_char(dli), _file, _line); 8846+ sb, tag, __dlimit_char(dli), _file, _line);
9481+} 8847+}
9482+ 8848+
9483+static inline void __dl_adjust_block(struct super_block *sb, tag_t tag, 8849+static inline void __dl_adjust_block(struct super_block *sb, vtag_t tag,
9484+ unsigned long long *free_blocks, unsigned long long *root_blocks, 8850+ unsigned long long *free_blocks, unsigned long long *root_blocks,
9485+ const char *_file, int _line) 8851+ const char *_file, int _line)
9486+{ 8852+{
@@ -9516,34 +8882,34 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_dlimit.h linux-3.4.57-vs2.3.
9516+} 8882+}
9517+ 8883+
9518+#define dl_prealloc_space(in, bytes) \ 8884+#define dl_prealloc_space(in, bytes) \
9519+ __dl_alloc_space((in)->i_sb, (in)->i_tag, (dlsize_t)(bytes), \ 8885+ __dl_alloc_space((in)->i_sb, i_tag_read(in), (dlsize_t)(bytes), \
9520+ __FILE__, __LINE__ ) 8886+ __FILE__, __LINE__ )
9521+ 8887+
9522+#define dl_alloc_space(in, bytes) \ 8888+#define dl_alloc_space(in, bytes) \
9523+ __dl_alloc_space((in)->i_sb, (in)->i_tag, (dlsize_t)(bytes), \ 8889+ __dl_alloc_space((in)->i_sb, i_tag_read(in), (dlsize_t)(bytes), \
9524+ __FILE__, __LINE__ ) 8890+ __FILE__, __LINE__ )
9525+ 8891+
9526+#define dl_reserve_space(in, bytes) \ 8892+#define dl_reserve_space(in, bytes) \
9527+ __dl_alloc_space((in)->i_sb, (in)->i_tag, (dlsize_t)(bytes), \ 8893+ __dl_alloc_space((in)->i_sb, i_tag_read(in), (dlsize_t)(bytes), \
9528+ __FILE__, __LINE__ ) 8894+ __FILE__, __LINE__ )
9529+ 8895+
9530+#define dl_claim_space(in, bytes) (0) 8896+#define dl_claim_space(in, bytes) (0)
9531+ 8897+
9532+#define dl_release_space(in, bytes) \ 8898+#define dl_release_space(in, bytes) \
9533+ __dl_free_space((in)->i_sb, (in)->i_tag, (dlsize_t)(bytes), \ 8899+ __dl_free_space((in)->i_sb, i_tag_read(in), (dlsize_t)(bytes), \
9534+ __FILE__, __LINE__ ) 8900+ __FILE__, __LINE__ )
9535+ 8901+
9536+#define dl_free_space(in, bytes) \ 8902+#define dl_free_space(in, bytes) \
9537+ __dl_free_space((in)->i_sb, (in)->i_tag, (dlsize_t)(bytes), \ 8903+ __dl_free_space((in)->i_sb, i_tag_read(in), (dlsize_t)(bytes), \
9538+ __FILE__, __LINE__ ) 8904+ __FILE__, __LINE__ )
9539+ 8905+
9540+ 8906+
9541+ 8907+
9542+#define dl_alloc_inode(in) \ 8908+#define dl_alloc_inode(in) \
9543+ __dl_alloc_inode((in)->i_sb, (in)->i_tag, __FILE__, __LINE__ ) 8909+ __dl_alloc_inode((in)->i_sb, i_tag_read(in), __FILE__, __LINE__ )
9544+ 8910+
9545+#define dl_free_inode(in) \ 8911+#define dl_free_inode(in) \
9546+ __dl_free_inode((in)->i_sb, (in)->i_tag, __FILE__, __LINE__ ) 8912+ __dl_free_inode((in)->i_sb, i_tag_read(in), __FILE__, __LINE__ )
9547+ 8913+
9548+ 8914+
9549+#define dl_adjust_block(sb, tag, fb, rb) \ 8915+#define dl_adjust_block(sb, tag, fb, rb) \
@@ -9553,10 +8919,10 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_dlimit.h linux-3.4.57-vs2.3.
9553+#else 8919+#else
9554+#warning duplicate inclusion 8920+#warning duplicate inclusion
9555+#endif 8921+#endif
9556diff -NurpP --minimal linux-3.4.57/include/linux/vs_inet.h linux-3.4.57-vs2.3.3.9/include/linux/vs_inet.h 8922diff -NurpP --minimal linux-3.10.17/include/linux/vs_inet.h linux-3.10.17-vs2.3.6.6/include/linux/vs_inet.h
9557--- linux-3.4.57/include/linux/vs_inet.h 1970-01-01 00:00:00.000000000 +0000 8923--- linux-3.10.17/include/linux/vs_inet.h 1970-01-01 00:00:00.000000000 +0000
9558+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_inet.h 2012-05-21 16:15:05.000000000 +0000 8924+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_inet.h 2013-08-22 20:30:00.000000000 +0000
9559@@ -0,0 +1,353 @@ 8925@@ -0,0 +1,364 @@
9560+#ifndef _VS_INET_H 8926+#ifndef _VS_INET_H
9561+#define _VS_INET_H 8927+#define _VS_INET_H
9562+ 8928+
@@ -9618,6 +8984,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_inet.h linux-3.4.57-vs2.3.3.
9618+int v4_addr_in_nx_info(struct nx_info *nxi, __be32 addr, uint16_t tmask) 8984+int v4_addr_in_nx_info(struct nx_info *nxi, __be32 addr, uint16_t tmask)
9619+{ 8985+{
9620+ struct nx_addr_v4 *nxa; 8986+ struct nx_addr_v4 *nxa;
8987+ unsigned long irqflags;
9621+ int ret = 1; 8988+ int ret = 1;
9622+ 8989+
9623+ if (!nxi) 8990+ if (!nxi)
@@ -9640,11 +9007,15 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_inet.h linux-3.4.57-vs2.3.3.
9640+ (nxi->v4_bcast.s_addr == addr)) 9007+ (nxi->v4_bcast.s_addr == addr))
9641+ goto out; 9008+ goto out;
9642+ ret = 5; 9009+ ret = 5;
9010+
9643+ /* check for v4 addresses */ 9011+ /* check for v4 addresses */
9012+ spin_lock_irqsave(&nxi->addr_lock, irqflags);
9644+ for (nxa = &nxi->v4; nxa; nxa = nxa->next) 9013+ for (nxa = &nxi->v4; nxa; nxa = nxa->next)
9645+ if (v4_addr_match(nxa, addr, tmask)) 9014+ if (v4_addr_match(nxa, addr, tmask))
9646+ goto out; 9015+ goto out_unlock;
9647+ ret = 0; 9016+ ret = 0;
9017+out_unlock:
9018+ spin_unlock_irqrestore(&nxi->addr_lock, irqflags);
9648+out: 9019+out:
9649+ vxdprintk(VXD_CBIT(net, 0), 9020+ vxdprintk(VXD_CBIT(net, 0),
9650+ "v4_addr_in_nx_info(%p[#%u]," NIPQUAD_FMT ",%04x) = %d", 9021+ "v4_addr_in_nx_info(%p[#%u]," NIPQUAD_FMT ",%04x) = %d",
@@ -9663,11 +9034,17 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_inet.h linux-3.4.57-vs2.3.3.
9663+int v4_nx_addr_in_nx_info(struct nx_info *nxi, struct nx_addr_v4 *nxa, uint16_t mask) 9034+int v4_nx_addr_in_nx_info(struct nx_info *nxi, struct nx_addr_v4 *nxa, uint16_t mask)
9664+{ 9035+{
9665+ struct nx_addr_v4 *ptr; 9036+ struct nx_addr_v4 *ptr;
9037+ unsigned long irqflags;
9038+ int ret = 1;
9666+ 9039+
9040+ spin_lock_irqsave(&nxi->addr_lock, irqflags);
9667+ for (ptr = &nxi->v4; ptr; ptr = ptr->next) 9041+ for (ptr = &nxi->v4; ptr; ptr = ptr->next)
9668+ if (v4_nx_addr_match(ptr, nxa, mask)) 9042+ if (v4_nx_addr_match(ptr, nxa, mask))
9669+ return 1; 9043+ goto out_unlock;
9670+ return 0; 9044+ ret = 0;
9045+out_unlock:
9046+ spin_unlock_irqrestore(&nxi->addr_lock, irqflags);
9047+ return ret;
9671+} 9048+}
9672+ 9049+
9673+#include <net/inet_sock.h> 9050+#include <net/inet_sock.h>
@@ -9910,10 +9287,10 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_inet.h linux-3.4.57-vs2.3.3.
9910+#else 9287+#else
9911+// #warning duplicate inclusion 9288+// #warning duplicate inclusion
9912+#endif 9289+#endif
9913diff -NurpP --minimal linux-3.4.57/include/linux/vs_inet6.h linux-3.4.57-vs2.3.3.9/include/linux/vs_inet6.h 9290diff -NurpP --minimal linux-3.10.17/include/linux/vs_inet6.h linux-3.10.17-vs2.3.6.6/include/linux/vs_inet6.h
9914--- linux-3.4.57/include/linux/vs_inet6.h 1970-01-01 00:00:00.000000000 +0000 9291--- linux-3.10.17/include/linux/vs_inet6.h 1970-01-01 00:00:00.000000000 +0000
9915+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_inet6.h 2012-05-21 16:15:05.000000000 +0000 9292+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_inet6.h 2013-08-22 20:30:00.000000000 +0000
9916@@ -0,0 +1,246 @@ 9293@@ -0,0 +1,257 @@
9917+#ifndef _VS_INET6_H 9294+#ifndef _VS_INET6_H
9918+#define _VS_INET6_H 9295+#define _VS_INET6_H
9919+ 9296+
@@ -9957,14 +9334,19 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_inet6.h linux-3.4.57-vs2.3.3
9957+ const struct in6_addr *addr, uint16_t mask) 9334+ const struct in6_addr *addr, uint16_t mask)
9958+{ 9335+{
9959+ struct nx_addr_v6 *nxa; 9336+ struct nx_addr_v6 *nxa;
9337+ unsigned long irqflags;
9960+ int ret = 1; 9338+ int ret = 1;
9961+ 9339+
9962+ if (!nxi) 9340+ if (!nxi)
9963+ goto out; 9341+ goto out;
9342+
9343+ spin_lock_irqsave(&nxi->addr_lock, irqflags);
9964+ for (nxa = &nxi->v6; nxa; nxa = nxa->next) 9344+ for (nxa = &nxi->v6; nxa; nxa = nxa->next)
9965+ if (v6_addr_match(nxa, addr, mask)) 9345+ if (v6_addr_match(nxa, addr, mask))
9966+ goto out; 9346+ goto out_unlock;
9967+ ret = 0; 9347+ ret = 0;
9348+out_unlock:
9349+ spin_unlock_irqrestore(&nxi->addr_lock, irqflags);
9968+out: 9350+out:
9969+ vxdprintk(VXD_CBIT(net, 0), 9351+ vxdprintk(VXD_CBIT(net, 0),
9970+ "v6_addr_in_nx_info(%p[#%u],%pI6,%04x) = %d", 9352+ "v6_addr_in_nx_info(%p[#%u],%pI6,%04x) = %d",
@@ -9983,11 +9365,17 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_inet6.h linux-3.4.57-vs2.3.3
9983+int v6_nx_addr_in_nx_info(struct nx_info *nxi, struct nx_addr_v6 *nxa, uint16_t mask) 9365+int v6_nx_addr_in_nx_info(struct nx_info *nxi, struct nx_addr_v6 *nxa, uint16_t mask)
9984+{ 9366+{
9985+ struct nx_addr_v6 *ptr; 9367+ struct nx_addr_v6 *ptr;
9368+ unsigned long irqflags;
9369+ int ret = 1;
9986+ 9370+
9371+ spin_lock_irqsave(&nxi->addr_lock, irqflags);
9987+ for (ptr = &nxi->v6; ptr; ptr = ptr->next) 9372+ for (ptr = &nxi->v6; ptr; ptr = ptr->next)
9988+ if (v6_nx_addr_match(ptr, nxa, mask)) 9373+ if (v6_nx_addr_match(ptr, nxa, mask))
9989+ return 1; 9374+ goto out_unlock;
9990+ return 0; 9375+ ret = 0;
9376+out_unlock:
9377+ spin_unlock_irqrestore(&nxi->addr_lock, irqflags);
9378+ return ret;
9991+} 9379+}
9992+ 9380+
9993+ 9381+
@@ -10160,9 +9548,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_inet6.h linux-3.4.57-vs2.3.3
10160+#else 9548+#else
10161+#warning duplicate inclusion 9549+#warning duplicate inclusion
10162+#endif 9550+#endif
10163diff -NurpP --minimal linux-3.4.57/include/linux/vs_limit.h linux-3.4.57-vs2.3.3.9/include/linux/vs_limit.h 9551diff -NurpP --minimal linux-3.10.17/include/linux/vs_limit.h linux-3.10.17-vs2.3.6.6/include/linux/vs_limit.h
10164--- linux-3.4.57/include/linux/vs_limit.h 1970-01-01 00:00:00.000000000 +0000 9552--- linux-3.10.17/include/linux/vs_limit.h 1970-01-01 00:00:00.000000000 +0000
10165+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_limit.h 2012-05-21 16:15:05.000000000 +0000 9553+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_limit.h 2013-08-22 20:30:00.000000000 +0000
10166@@ -0,0 +1,140 @@ 9554@@ -0,0 +1,140 @@
10167+#ifndef _VS_LIMIT_H 9555+#ifndef _VS_LIMIT_H
10168+#define _VS_LIMIT_H 9556+#define _VS_LIMIT_H
@@ -10304,9 +9692,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_limit.h linux-3.4.57-vs2.3.3
10304+#else 9692+#else
10305+#warning duplicate inclusion 9693+#warning duplicate inclusion
10306+#endif 9694+#endif
10307diff -NurpP --minimal linux-3.4.57/include/linux/vs_network.h linux-3.4.57-vs2.3.3.9/include/linux/vs_network.h 9695diff -NurpP --minimal linux-3.10.17/include/linux/vs_network.h linux-3.10.17-vs2.3.6.6/include/linux/vs_network.h
10308--- linux-3.4.57/include/linux/vs_network.h 1970-01-01 00:00:00.000000000 +0000 9696--- linux-3.10.17/include/linux/vs_network.h 1970-01-01 00:00:00.000000000 +0000
10309+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_network.h 2012-05-21 16:15:05.000000000 +0000 9697+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_network.h 2013-08-22 20:30:00.000000000 +0000
10310@@ -0,0 +1,169 @@ 9698@@ -0,0 +1,169 @@
10311+#ifndef _NX_VS_NETWORK_H 9699+#ifndef _NX_VS_NETWORK_H
10312+#define _NX_VS_NETWORK_H 9700+#define _NX_VS_NETWORK_H
@@ -10477,9 +9865,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_network.h linux-3.4.57-vs2.3
10477+#else 9865+#else
10478+#warning duplicate inclusion 9866+#warning duplicate inclusion
10479+#endif 9867+#endif
10480diff -NurpP --minimal linux-3.4.57/include/linux/vs_pid.h linux-3.4.57-vs2.3.3.9/include/linux/vs_pid.h 9868diff -NurpP --minimal linux-3.10.17/include/linux/vs_pid.h linux-3.10.17-vs2.3.6.6/include/linux/vs_pid.h
10481--- linux-3.4.57/include/linux/vs_pid.h 1970-01-01 00:00:00.000000000 +0000 9869--- linux-3.10.17/include/linux/vs_pid.h 1970-01-01 00:00:00.000000000 +0000
10482+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_pid.h 2012-05-21 16:15:05.000000000 +0000 9870+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_pid.h 2013-08-22 20:30:00.000000000 +0000
10483@@ -0,0 +1,50 @@ 9871@@ -0,0 +1,50 @@
10484+#ifndef _VS_PID_H 9872+#ifndef _VS_PID_H
10485+#define _VS_PID_H 9873+#define _VS_PID_H
@@ -10531,9 +9919,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_pid.h linux-3.4.57-vs2.3.3.9
10531+#else 9919+#else
10532+#warning duplicate inclusion 9920+#warning duplicate inclusion
10533+#endif 9921+#endif
10534diff -NurpP --minimal linux-3.4.57/include/linux/vs_sched.h linux-3.4.57-vs2.3.3.9/include/linux/vs_sched.h 9922diff -NurpP --minimal linux-3.10.17/include/linux/vs_sched.h linux-3.10.17-vs2.3.6.6/include/linux/vs_sched.h
10535--- linux-3.4.57/include/linux/vs_sched.h 1970-01-01 00:00:00.000000000 +0000 9923--- linux-3.10.17/include/linux/vs_sched.h 1970-01-01 00:00:00.000000000 +0000
10536+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_sched.h 2012-05-21 16:15:05.000000000 +0000 9924+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_sched.h 2013-08-22 20:30:00.000000000 +0000
10537@@ -0,0 +1,40 @@ 9925@@ -0,0 +1,40 @@
10538+#ifndef _VS_SCHED_H 9926+#ifndef _VS_SCHED_H
10539+#define _VS_SCHED_H 9927+#define _VS_SCHED_H
@@ -10575,9 +9963,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_sched.h linux-3.4.57-vs2.3.3
10575+#else 9963+#else
10576+#warning duplicate inclusion 9964+#warning duplicate inclusion
10577+#endif 9965+#endif
10578diff -NurpP --minimal linux-3.4.57/include/linux/vs_socket.h linux-3.4.57-vs2.3.3.9/include/linux/vs_socket.h 9966diff -NurpP --minimal linux-3.10.17/include/linux/vs_socket.h linux-3.10.17-vs2.3.6.6/include/linux/vs_socket.h
10579--- linux-3.4.57/include/linux/vs_socket.h 1970-01-01 00:00:00.000000000 +0000 9967--- linux-3.10.17/include/linux/vs_socket.h 1970-01-01 00:00:00.000000000 +0000
10580+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_socket.h 2012-05-21 16:15:05.000000000 +0000 9968+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_socket.h 2013-08-22 20:30:00.000000000 +0000
10581@@ -0,0 +1,67 @@ 9969@@ -0,0 +1,67 @@
10582+#ifndef _VS_SOCKET_H 9970+#ifndef _VS_SOCKET_H
10583+#define _VS_SOCKET_H 9971+#define _VS_SOCKET_H
@@ -10646,9 +10034,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_socket.h linux-3.4.57-vs2.3.
10646+#else 10034+#else
10647+#warning duplicate inclusion 10035+#warning duplicate inclusion
10648+#endif 10036+#endif
10649diff -NurpP --minimal linux-3.4.57/include/linux/vs_tag.h linux-3.4.57-vs2.3.3.9/include/linux/vs_tag.h 10037diff -NurpP --minimal linux-3.10.17/include/linux/vs_tag.h linux-3.10.17-vs2.3.6.6/include/linux/vs_tag.h
10650--- linux-3.4.57/include/linux/vs_tag.h 1970-01-01 00:00:00.000000000 +0000 10038--- linux-3.10.17/include/linux/vs_tag.h 1970-01-01 00:00:00.000000000 +0000
10651+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_tag.h 2012-05-21 16:15:05.000000000 +0000 10039+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_tag.h 2013-08-22 20:30:00.000000000 +0000
10652@@ -0,0 +1,47 @@ 10040@@ -0,0 +1,47 @@
10653+#ifndef _VS_TAG_H 10041+#ifndef _VS_TAG_H
10654+#define _VS_TAG_H 10042+#define _VS_TAG_H
@@ -10679,7 +10067,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_tag.h linux-3.4.57-vs2.3.3.9
10679+ * check current context for ADMIN/WATCH and 10067+ * check current context for ADMIN/WATCH and
10680+ * optionally against supplied argument 10068+ * optionally against supplied argument
10681+ */ 10069+ */
10682+static inline int __dx_check(tag_t cid, tag_t id, unsigned int mode) 10070+static inline int __dx_check(vtag_t cid, vtag_t id, unsigned int mode)
10683+{ 10071+{
10684+ if (mode & DX_ARG_MASK) { 10072+ if (mode & DX_ARG_MASK) {
10685+ if ((mode & DX_IDENT) && (id == cid)) 10073+ if ((mode & DX_IDENT) && (id == cid))
@@ -10697,9 +10085,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_tag.h linux-3.4.57-vs2.3.3.9
10697+#else 10085+#else
10698+#warning duplicate inclusion 10086+#warning duplicate inclusion
10699+#endif 10087+#endif
10700diff -NurpP --minimal linux-3.4.57/include/linux/vs_time.h linux-3.4.57-vs2.3.3.9/include/linux/vs_time.h 10088diff -NurpP --minimal linux-3.10.17/include/linux/vs_time.h linux-3.10.17-vs2.3.6.6/include/linux/vs_time.h
10701--- linux-3.4.57/include/linux/vs_time.h 1970-01-01 00:00:00.000000000 +0000 10089--- linux-3.10.17/include/linux/vs_time.h 1970-01-01 00:00:00.000000000 +0000
10702+++ linux-3.4.57-vs2.3.3.9/include/linux/vs_time.h 2012-05-21 16:15:05.000000000 +0000 10090+++ linux-3.10.17-vs2.3.6.6/include/linux/vs_time.h 2013-08-22 20:30:00.000000000 +0000
10703@@ -0,0 +1,19 @@ 10091@@ -0,0 +1,19 @@
10704+#ifndef _VS_TIME_H 10092+#ifndef _VS_TIME_H
10705+#define _VS_TIME_H 10093+#define _VS_TIME_H
@@ -10720,24 +10108,12 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vs_time.h linux-3.4.57-vs2.3.3.
10720+#else 10108+#else
10721+#warning duplicate inclusion 10109+#warning duplicate inclusion
10722+#endif 10110+#endif
10723diff -NurpP --minimal linux-3.4.57/include/linux/vserver/Kbuild linux-3.4.57-vs2.3.3.9/include/linux/vserver/Kbuild 10111diff -NurpP --minimal linux-3.10.17/include/linux/vserver/base.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/base.h
10724--- linux-3.4.57/include/linux/vserver/Kbuild 1970-01-01 00:00:00.000000000 +0000 10112--- linux-3.10.17/include/linux/vserver/base.h 1970-01-01 00:00:00.000000000 +0000
10725+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/Kbuild 2012-05-21 16:15:05.000000000 +0000 10113+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/base.h 2013-08-22 20:30:00.000000000 +0000
10726@@ -0,0 +1,8 @@ 10114@@ -0,0 +1,181 @@
10727+ 10115+#ifndef _VSERVER_BASE_H
10728+header-y += context_cmd.h network_cmd.h space_cmd.h \ 10116+#define _VSERVER_BASE_H
10729+ cacct_cmd.h cvirt_cmd.h limit_cmd.h dlimit_cmd.h \
10730+ inode_cmd.h tag_cmd.h sched_cmd.h signal_cmd.h \
10731+ debug_cmd.h device_cmd.h
10732+
10733+header-y += switch.h network.h monitor.h inode.h device.h
10734+
10735diff -NurpP --minimal linux-3.4.57/include/linux/vserver/base.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/base.h
10736--- linux-3.4.57/include/linux/vserver/base.h 1970-01-01 00:00:00.000000000 +0000
10737+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/base.h 2012-05-21 16:15:05.000000000 +0000
10738@@ -0,0 +1,178 @@
10739+#ifndef _VX_BASE_H
10740+#define _VX_BASE_H
10741+ 10117+
10742+ 10118+
10743+/* context state changes */ 10119+/* context state changes */
@@ -10898,6 +10274,9 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/base.h linux-3.4.57-vs2
10898+ (cap_raised(current_cap(), b) && \ 10274+ (cap_raised(current_cap(), b) && \
10899+ !((f) & ~vx_current_umask()))) 10275+ !((f) & ~vx_current_umask())))
10900+ 10276+
10277+#define vx_ns_can_unshare(n, b, f) (ns_capable(n, b) || \
10278+ (cap_raised(current_cap(), b) && \
10279+ !((f) & ~vx_current_umask())))
10901+ 10280+
10902+#define __vx_wmask(v) ((v)->vx_wmask) 10281+#define __vx_wmask(v) ((v)->vx_wmask)
10903+ 10282+
@@ -10914,12 +10293,12 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/base.h linux-3.4.57-vs2
10914+#define nx_info_state(n, m) (__nx_state(n) & (m)) 10293+#define nx_info_state(n, m) (__nx_state(n) & (m))
10915+ 10294+
10916+#endif 10295+#endif
10917diff -NurpP --minimal linux-3.4.57/include/linux/vserver/cacct.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/cacct.h 10296diff -NurpP --minimal linux-3.10.17/include/linux/vserver/cacct.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/cacct.h
10918--- linux-3.4.57/include/linux/vserver/cacct.h 1970-01-01 00:00:00.000000000 +0000 10297--- linux-3.10.17/include/linux/vserver/cacct.h 1970-01-01 00:00:00.000000000 +0000
10919+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/cacct.h 2012-05-21 16:15:05.000000000 +0000 10298+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/cacct.h 2013-08-22 20:30:00.000000000 +0000
10920@@ -0,0 +1,15 @@ 10299@@ -0,0 +1,15 @@
10921+#ifndef _VX_CACCT_H 10300+#ifndef _VSERVER_CACCT_H
10922+#define _VX_CACCT_H 10301+#define _VSERVER_CACCT_H
10923+ 10302+
10924+ 10303+
10925+enum sock_acc_field { 10304+enum sock_acc_field {
@@ -10932,40 +10311,27 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/cacct.h linux-3.4.57-vs
10932+ VXA_SOCK_SIZE /* array size */ 10311+ VXA_SOCK_SIZE /* array size */
10933+}; 10312+};
10934+ 10313+
10935+#endif /* _VX_CACCT_H */ 10314+#endif /* _VSERVER_CACCT_H */
10936diff -NurpP --minimal linux-3.4.57/include/linux/vserver/cacct_cmd.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/cacct_cmd.h 10315diff -NurpP --minimal linux-3.10.17/include/linux/vserver/cacct_cmd.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/cacct_cmd.h
10937--- linux-3.4.57/include/linux/vserver/cacct_cmd.h 1970-01-01 00:00:00.000000000 +0000 10316--- linux-3.10.17/include/linux/vserver/cacct_cmd.h 1970-01-01 00:00:00.000000000 +0000
10938+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/cacct_cmd.h 2012-05-21 16:15:05.000000000 +0000 10317+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/cacct_cmd.h 2013-08-22 20:30:00.000000000 +0000
10939@@ -0,0 +1,23 @@ 10318@@ -0,0 +1,10 @@
10940+#ifndef _VX_CACCT_CMD_H 10319+#ifndef _VSERVER_CACCT_CMD_H
10941+#define _VX_CACCT_CMD_H 10320+#define _VSERVER_CACCT_CMD_H
10942+
10943+
10944+/* virtual host info name commands */
10945+
10946+#define VCMD_sock_stat VC_CMD(VSTAT, 5, 0)
10947+
10948+struct vcmd_sock_stat_v0 {
10949+ uint32_t field;
10950+ uint32_t count[3];
10951+ uint64_t total[3];
10952+};
10953+
10954+ 10321+
10955+#ifdef __KERNEL__
10956+ 10322+
10957+#include <linux/compiler.h> 10323+#include <linux/compiler.h>
10324+#include <uapi/vserver/cacct_cmd.h>
10958+ 10325+
10959+extern int vc_sock_stat(struct vx_info *, void __user *); 10326+extern int vc_sock_stat(struct vx_info *, void __user *);
10960+ 10327+
10961+#endif /* __KERNEL__ */ 10328+#endif /* _VSERVER_CACCT_CMD_H */
10962+#endif /* _VX_CACCT_CMD_H */ 10329diff -NurpP --minimal linux-3.10.17/include/linux/vserver/cacct_def.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/cacct_def.h
10963diff -NurpP --minimal linux-3.4.57/include/linux/vserver/cacct_def.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/cacct_def.h 10330--- linux-3.10.17/include/linux/vserver/cacct_def.h 1970-01-01 00:00:00.000000000 +0000
10964--- linux-3.4.57/include/linux/vserver/cacct_def.h 1970-01-01 00:00:00.000000000 +0000 10331+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/cacct_def.h 2013-08-22 20:30:00.000000000 +0000
10965+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/cacct_def.h 2012-05-21 16:15:05.000000000 +0000
10966@@ -0,0 +1,43 @@ 10332@@ -0,0 +1,43 @@
10967+#ifndef _VX_CACCT_DEF_H 10333+#ifndef _VSERVER_CACCT_DEF_H
10968+#define _VX_CACCT_DEF_H 10334+#define _VSERVER_CACCT_DEF_H
10969+ 10335+
10970+#include <asm/atomic.h> 10336+#include <asm/atomic.h>
10971+#include <linux/vserver/cacct.h> 10337+#include <linux/vserver/cacct.h>
@@ -11006,16 +10372,13 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/cacct_def.h linux-3.4.5
11006+ 10372+
11007+#endif 10373+#endif
11008+ 10374+
11009+#endif /* _VX_CACCT_DEF_H */ 10375+#endif /* _VSERVER_CACCT_DEF_H */
11010diff -NurpP --minimal linux-3.4.57/include/linux/vserver/cacct_int.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/cacct_int.h 10376diff -NurpP --minimal linux-3.10.17/include/linux/vserver/cacct_int.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/cacct_int.h
11011--- linux-3.4.57/include/linux/vserver/cacct_int.h 1970-01-01 00:00:00.000000000 +0000 10377--- linux-3.10.17/include/linux/vserver/cacct_int.h 1970-01-01 00:00:00.000000000 +0000
11012+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/cacct_int.h 2012-05-21 16:15:05.000000000 +0000 10378+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/cacct_int.h 2013-08-22 20:30:00.000000000 +0000
11013@@ -0,0 +1,21 @@ 10379@@ -0,0 +1,17 @@
11014+#ifndef _VX_CACCT_INT_H 10380+#ifndef _VSERVER_CACCT_INT_H
11015+#define _VX_CACCT_INT_H 10381+#define _VSERVER_CACCT_INT_H
11016+
11017+
11018+#ifdef __KERNEL__
11019+ 10382+
11020+static inline 10383+static inline
11021+unsigned long vx_sock_count(struct _vx_cacct *cacct, int type, int pos) 10384+unsigned long vx_sock_count(struct _vx_cacct *cacct, int type, int pos)
@@ -11030,14 +10393,13 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/cacct_int.h linux-3.4.5
11030+ return atomic_long_read(&cacct->sock[type][pos].total); 10393+ return atomic_long_read(&cacct->sock[type][pos].total);
11031+} 10394+}
11032+ 10395+
11033+#endif /* __KERNEL__ */ 10396+#endif /* _VSERVER_CACCT_INT_H */
11034+#endif /* _VX_CACCT_INT_H */ 10397diff -NurpP --minimal linux-3.10.17/include/linux/vserver/check.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/check.h
11035diff -NurpP --minimal linux-3.4.57/include/linux/vserver/check.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/check.h 10398--- linux-3.10.17/include/linux/vserver/check.h 1970-01-01 00:00:00.000000000 +0000
11036--- linux-3.4.57/include/linux/vserver/check.h 1970-01-01 00:00:00.000000000 +0000 10399+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/check.h 2013-08-22 20:30:00.000000000 +0000
11037+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/check.h 2012-05-21 16:15:05.000000000 +0000
11038@@ -0,0 +1,89 @@ 10400@@ -0,0 +1,89 @@
11039+#ifndef _VS_CHECK_H 10401+#ifndef _VSERVER_CHECK_H
11040+#define _VS_CHECK_H 10402+#define _VSERVER_CHECK_H
11041+ 10403+
11042+ 10404+
11043+#define MAX_S_CONTEXT 65535 /* Arbitrary limit */ 10405+#define MAX_S_CONTEXT 65535 /* Arbitrary limit */
@@ -11125,95 +10487,18 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/check.h linux-3.4.57-vs
11125+#define nx_weak_check(c, m) ((m) ? nx_check(c, m) : 1) 10487+#define nx_weak_check(c, m) ((m) ? nx_check(c, m) : 1)
11126+ 10488+
11127+#endif 10489+#endif
11128diff -NurpP --minimal linux-3.4.57/include/linux/vserver/context.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/context.h 10490diff -NurpP --minimal linux-3.10.17/include/linux/vserver/context.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/context.h
11129--- linux-3.4.57/include/linux/vserver/context.h 1970-01-01 00:00:00.000000000 +0000 10491--- linux-3.10.17/include/linux/vserver/context.h 1970-01-01 00:00:00.000000000 +0000
11130+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/context.h 2012-05-21 16:15:05.000000000 +0000 10492+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/context.h 2013-08-22 20:30:00.000000000 +0000
11131@@ -0,0 +1,188 @@ 10493@@ -0,0 +1,110 @@
11132+#ifndef _VX_CONTEXT_H 10494+#ifndef _VSERVER_CONTEXT_H
11133+#define _VX_CONTEXT_H 10495+#define _VSERVER_CONTEXT_H
11134+ 10496+
11135+#include <linux/types.h>
11136+#include <linux/capability.h>
11137+
11138+
11139+/* context flags */
11140+
11141+#define VXF_INFO_SCHED 0x00000002
11142+#define VXF_INFO_NPROC 0x00000004
11143+#define VXF_INFO_PRIVATE 0x00000008
11144+
11145+#define VXF_INFO_INIT 0x00000010
11146+#define VXF_INFO_HIDE 0x00000020
11147+#define VXF_INFO_ULIMIT 0x00000040
11148+#define VXF_INFO_NSPACE 0x00000080
11149+
11150+#define VXF_SCHED_HARD 0x00000100
11151+#define VXF_SCHED_PRIO 0x00000200
11152+#define VXF_SCHED_PAUSE 0x00000400
11153+
11154+#define VXF_VIRT_MEM 0x00010000
11155+#define VXF_VIRT_UPTIME 0x00020000
11156+#define VXF_VIRT_CPU 0x00040000
11157+#define VXF_VIRT_LOAD 0x00080000
11158+#define VXF_VIRT_TIME 0x00100000
11159+
11160+#define VXF_HIDE_MOUNT 0x01000000
11161+/* was VXF_HIDE_NETIF 0x02000000 */
11162+#define VXF_HIDE_VINFO 0x04000000
11163+
11164+#define VXF_STATE_SETUP (1ULL << 32)
11165+#define VXF_STATE_INIT (1ULL << 33)
11166+#define VXF_STATE_ADMIN (1ULL << 34)
11167+
11168+#define VXF_SC_HELPER (1ULL << 36)
11169+#define VXF_REBOOT_KILL (1ULL << 37)
11170+#define VXF_PERSISTENT (1ULL << 38)
11171+
11172+#define VXF_FORK_RSS (1ULL << 48)
11173+#define VXF_PROLIFIC (1ULL << 49)
11174+
11175+#define VXF_IGNEG_NICE (1ULL << 52)
11176+
11177+#define VXF_ONE_TIME (0x0007ULL << 32)
11178+
11179+#define VXF_INIT_SET (VXF_STATE_SETUP | VXF_STATE_INIT | VXF_STATE_ADMIN)
11180+
11181+
11182+/* context migration */
11183+
11184+#define VXM_SET_INIT 0x00000001
11185+#define VXM_SET_REAPER 0x00000002
11186+
11187+/* context caps */
11188+
11189+#define VXC_SET_UTSNAME 0x00000001
11190+#define VXC_SET_RLIMIT 0x00000002
11191+#define VXC_FS_SECURITY 0x00000004
11192+#define VXC_FS_TRUSTED 0x00000008
11193+#define VXC_TIOCSTI 0x00000010
11194+
11195+/* was VXC_RAW_ICMP 0x00000100 */
11196+#define VXC_SYSLOG 0x00001000
11197+#define VXC_OOM_ADJUST 0x00002000
11198+#define VXC_AUDIT_CONTROL 0x00004000
11199+
11200+#define VXC_SECURE_MOUNT 0x00010000
11201+#define VXC_SECURE_REMOUNT 0x00020000
11202+#define VXC_BINARY_MOUNT 0x00040000
11203+
11204+#define VXC_QUOTA_CTL 0x00100000
11205+#define VXC_ADMIN_MAPPER 0x00200000
11206+#define VXC_ADMIN_CLOOP 0x00400000
11207+
11208+#define VXC_KTHREAD 0x01000000
11209+#define VXC_NAMESPACE 0x02000000
11210+
11211+
11212+#ifdef __KERNEL__
11213+ 10497+
11214+#include <linux/list.h> 10498+#include <linux/list.h>
11215+#include <linux/spinlock.h> 10499+#include <linux/spinlock.h>
11216+#include <linux/rcupdate.h> 10500+#include <linux/rcupdate.h>
10501+#include <uapi/vserver/context.h>
11217+ 10502+
11218+#include "limit_def.h" 10503+#include "limit_def.h"
11219+#include "sched_def.h" 10504+#include "sched_def.h"
@@ -11237,7 +10522,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/context.h linux-3.4.57-
11237+ 10522+
11238+struct vx_info { 10523+struct vx_info {
11239+ struct hlist_node vx_hlist; /* linked list of contexts */ 10524+ struct hlist_node vx_hlist; /* linked list of contexts */
11240+ xid_t vx_id; /* context id */ 10525+ vxid_t vx_id; /* context id */
11241+ atomic_t vx_usecnt; /* usage count */ 10526+ atomic_t vx_usecnt; /* usage count */
11242+ atomic_t vx_tasks; /* tasks count */ 10527+ atomic_t vx_tasks; /* tasks count */
11243+ struct vx_info *vx_parent; /* parent context */ 10528+ struct vx_info *vx_parent; /* parent context */
@@ -11288,7 +10573,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/context.h linux-3.4.57-
11288+ 10573+
11289+struct vx_info_save { 10574+struct vx_info_save {
11290+ struct vx_info *vxi; 10575+ struct vx_info *vxi;
11291+ xid_t xid; 10576+ vxid_t xid;
11292+}; 10577+};
11293+ 10578+
11294+ 10579+
@@ -11308,190 +10593,57 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/context.h linux-3.4.57-
11308+extern struct vx_info *lookup_or_create_vx_info(int); 10593+extern struct vx_info *lookup_or_create_vx_info(int);
11309+ 10594+
11310+extern int get_xid_list(int, unsigned int *, int); 10595+extern int get_xid_list(int, unsigned int *, int);
11311+extern int xid_is_hashed(xid_t); 10596+extern int xid_is_hashed(vxid_t);
11312+ 10597+
11313+extern int vx_migrate_task(struct task_struct *, struct vx_info *, int); 10598+extern int vx_migrate_task(struct task_struct *, struct vx_info *, int);
11314+ 10599+
11315+extern long vs_state_change(struct vx_info *, unsigned int); 10600+extern long vs_state_change(struct vx_info *, unsigned int);
11316+ 10601+
11317+ 10602+
11318+#endif /* __KERNEL__ */ 10603+#endif /* _VSERVER_CONTEXT_H */
11319+#endif /* _VX_CONTEXT_H */ 10604diff -NurpP --minimal linux-3.10.17/include/linux/vserver/context_cmd.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/context_cmd.h
11320diff -NurpP --minimal linux-3.4.57/include/linux/vserver/context_cmd.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/context_cmd.h 10605--- linux-3.10.17/include/linux/vserver/context_cmd.h 1970-01-01 00:00:00.000000000 +0000
11321--- linux-3.4.57/include/linux/vserver/context_cmd.h 1970-01-01 00:00:00.000000000 +0000 10606+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/context_cmd.h 2013-08-22 20:30:00.000000000 +0000
11322+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/context_cmd.h 2012-05-21 16:15:05.000000000 +0000 10607@@ -0,0 +1,33 @@
11323@@ -0,0 +1,162 @@ 10608+#ifndef _VSERVER_CONTEXT_CMD_H
11324+#ifndef _VX_CONTEXT_CMD_H 10609+#define _VSERVER_CONTEXT_CMD_H
11325+#define _VX_CONTEXT_CMD_H
11326+
11327+ 10610+
11328+/* vinfo commands */ 10611+#include <uapi/vserver/context_cmd.h>
11329+ 10612+
11330+#define VCMD_task_xid VC_CMD(VINFO, 1, 0)
11331+
11332+#ifdef __KERNEL__
11333+extern int vc_task_xid(uint32_t); 10613+extern int vc_task_xid(uint32_t);
11334+ 10614+
11335+#endif /* __KERNEL__ */
11336+
11337+#define VCMD_vx_info VC_CMD(VINFO, 5, 0)
11338+
11339+struct vcmd_vx_info_v0 {
11340+ uint32_t xid;
11341+ uint32_t initpid;
11342+ /* more to come */
11343+};
11344+
11345+#ifdef __KERNEL__
11346+extern int vc_vx_info(struct vx_info *, void __user *); 10615+extern int vc_vx_info(struct vx_info *, void __user *);
11347+ 10616+
11348+#endif /* __KERNEL__ */
11349+
11350+#define VCMD_ctx_stat VC_CMD(VSTAT, 0, 0)
11351+
11352+struct vcmd_ctx_stat_v0 {
11353+ uint32_t usecnt;
11354+ uint32_t tasks;
11355+ /* more to come */
11356+};
11357+
11358+#ifdef __KERNEL__
11359+extern int vc_ctx_stat(struct vx_info *, void __user *); 10617+extern int vc_ctx_stat(struct vx_info *, void __user *);
11360+ 10618+
11361+#endif /* __KERNEL__ */
11362+
11363+/* context commands */
11364+
11365+#define VCMD_ctx_create_v0 VC_CMD(VPROC, 1, 0)
11366+#define VCMD_ctx_create VC_CMD(VPROC, 1, 1)
11367+
11368+struct vcmd_ctx_create {
11369+ uint64_t flagword;
11370+};
11371+
11372+#define VCMD_ctx_migrate_v0 VC_CMD(PROCMIG, 1, 0)
11373+#define VCMD_ctx_migrate VC_CMD(PROCMIG, 1, 1)
11374+
11375+struct vcmd_ctx_migrate {
11376+ uint64_t flagword;
11377+};
11378+
11379+#ifdef __KERNEL__
11380+extern int vc_ctx_create(uint32_t, void __user *); 10619+extern int vc_ctx_create(uint32_t, void __user *);
11381+extern int vc_ctx_migrate(struct vx_info *, void __user *); 10620+extern int vc_ctx_migrate(struct vx_info *, void __user *);
11382+ 10621+
11383+#endif /* __KERNEL__ */
11384+
11385+
11386+/* flag commands */
11387+
11388+#define VCMD_get_cflags VC_CMD(FLAGS, 1, 0)
11389+#define VCMD_set_cflags VC_CMD(FLAGS, 2, 0)
11390+
11391+struct vcmd_ctx_flags_v0 {
11392+ uint64_t flagword;
11393+ uint64_t mask;
11394+};
11395+
11396+#ifdef __KERNEL__
11397+extern int vc_get_cflags(struct vx_info *, void __user *); 10622+extern int vc_get_cflags(struct vx_info *, void __user *);
11398+extern int vc_set_cflags(struct vx_info *, void __user *); 10623+extern int vc_set_cflags(struct vx_info *, void __user *);
11399+ 10624+
11400+#endif /* __KERNEL__ */
11401+
11402+
11403+/* context caps commands */
11404+
11405+#define VCMD_get_ccaps VC_CMD(FLAGS, 3, 1)
11406+#define VCMD_set_ccaps VC_CMD(FLAGS, 4, 1)
11407+
11408+struct vcmd_ctx_caps_v1 {
11409+ uint64_t ccaps;
11410+ uint64_t cmask;
11411+};
11412+
11413+#ifdef __KERNEL__
11414+extern int vc_get_ccaps(struct vx_info *, void __user *); 10625+extern int vc_get_ccaps(struct vx_info *, void __user *);
11415+extern int vc_set_ccaps(struct vx_info *, void __user *); 10626+extern int vc_set_ccaps(struct vx_info *, void __user *);
11416+ 10627+
11417+#endif /* __KERNEL__ */
11418+
11419+
11420+/* bcaps commands */
11421+
11422+#define VCMD_get_bcaps VC_CMD(FLAGS, 9, 0)
11423+#define VCMD_set_bcaps VC_CMD(FLAGS, 10, 0)
11424+
11425+struct vcmd_bcaps {
11426+ uint64_t bcaps;
11427+ uint64_t bmask;
11428+};
11429+
11430+#ifdef __KERNEL__
11431+extern int vc_get_bcaps(struct vx_info *, void __user *); 10628+extern int vc_get_bcaps(struct vx_info *, void __user *);
11432+extern int vc_set_bcaps(struct vx_info *, void __user *); 10629+extern int vc_set_bcaps(struct vx_info *, void __user *);
11433+ 10630+
11434+#endif /* __KERNEL__ */
11435+
11436+
11437+/* umask commands */
11438+
11439+#define VCMD_get_umask VC_CMD(FLAGS, 13, 0)
11440+#define VCMD_set_umask VC_CMD(FLAGS, 14, 0)
11441+
11442+struct vcmd_umask {
11443+ uint64_t umask;
11444+ uint64_t mask;
11445+};
11446+
11447+#ifdef __KERNEL__
11448+extern int vc_get_umask(struct vx_info *, void __user *); 10631+extern int vc_get_umask(struct vx_info *, void __user *);
11449+extern int vc_set_umask(struct vx_info *, void __user *); 10632+extern int vc_set_umask(struct vx_info *, void __user *);
11450+ 10633+
11451+#endif /* __KERNEL__ */
11452+
11453+
11454+/* wmask commands */
11455+
11456+#define VCMD_get_wmask VC_CMD(FLAGS, 15, 0)
11457+#define VCMD_set_wmask VC_CMD(FLAGS, 16, 0)
11458+
11459+struct vcmd_wmask {
11460+ uint64_t wmask;
11461+ uint64_t mask;
11462+};
11463+
11464+#ifdef __KERNEL__
11465+extern int vc_get_wmask(struct vx_info *, void __user *); 10634+extern int vc_get_wmask(struct vx_info *, void __user *);
11466+extern int vc_set_wmask(struct vx_info *, void __user *); 10635+extern int vc_set_wmask(struct vx_info *, void __user *);
11467+ 10636+
11468+#endif /* __KERNEL__ */
11469+
11470+
11471+/* OOM badness */
11472+
11473+#define VCMD_get_badness VC_CMD(MEMCTRL, 5, 0)
11474+#define VCMD_set_badness VC_CMD(MEMCTRL, 6, 0)
11475+
11476+struct vcmd_badness_v0 {
11477+ int64_t bias;
11478+};
11479+
11480+#ifdef __KERNEL__
11481+extern int vc_get_badness(struct vx_info *, void __user *); 10637+extern int vc_get_badness(struct vx_info *, void __user *);
11482+extern int vc_set_badness(struct vx_info *, void __user *); 10638+extern int vc_set_badness(struct vx_info *, void __user *);
11483+ 10639+
11484+#endif /* __KERNEL__ */ 10640+#endif /* _VSERVER_CONTEXT_CMD_H */
11485+#endif /* _VX_CONTEXT_CMD_H */ 10641diff -NurpP --minimal linux-3.10.17/include/linux/vserver/cvirt.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/cvirt.h
11486diff -NurpP --minimal linux-3.4.57/include/linux/vserver/cvirt.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/cvirt.h 10642--- linux-3.10.17/include/linux/vserver/cvirt.h 1970-01-01 00:00:00.000000000 +0000
11487--- linux-3.4.57/include/linux/vserver/cvirt.h 1970-01-01 00:00:00.000000000 +0000 10643+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/cvirt.h 2013-08-22 20:30:00.000000000 +0000
11488+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/cvirt.h 2012-05-21 16:15:05.000000000 +0000 10644@@ -0,0 +1,18 @@
11489@@ -0,0 +1,22 @@ 10645+#ifndef _VSERVER_CVIRT_H
11490+#ifndef _VX_CVIRT_H 10646+#define _VSERVER_CVIRT_H
11491+#define _VX_CVIRT_H
11492+
11493+
11494+#ifdef __KERNEL__
11495+ 10647+
11496+struct timespec; 10648+struct timespec;
11497+ 10649+
@@ -11507,71 +10659,30 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/cvirt.h linux-3.4.57-vs
11507+ 10659+
11508+int vx_do_syslog(int, char __user *, int); 10660+int vx_do_syslog(int, char __user *, int);
11509+ 10661+
11510+#endif /* __KERNEL__ */ 10662+#endif /* _VSERVER_CVIRT_H */
11511+#endif /* _VX_CVIRT_H */ 10663diff -NurpP --minimal linux-3.10.17/include/linux/vserver/cvirt_cmd.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/cvirt_cmd.h
11512diff -NurpP --minimal linux-3.4.57/include/linux/vserver/cvirt_cmd.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/cvirt_cmd.h 10664--- linux-3.10.17/include/linux/vserver/cvirt_cmd.h 1970-01-01 00:00:00.000000000 +0000
11513--- linux-3.4.57/include/linux/vserver/cvirt_cmd.h 1970-01-01 00:00:00.000000000 +0000 10665+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/cvirt_cmd.h 2013-08-22 20:30:00.000000000 +0000
11514+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/cvirt_cmd.h 2012-05-21 16:15:05.000000000 +0000 10666@@ -0,0 +1,13 @@
11515@@ -0,0 +1,53 @@ 10667+#ifndef _VSERVER_CVIRT_CMD_H
11516+#ifndef _VX_CVIRT_CMD_H 10668+#define _VSERVER_CVIRT_CMD_H
11517+#define _VX_CVIRT_CMD_H
11518+
11519+
11520+/* virtual host info name commands */
11521+
11522+#define VCMD_set_vhi_name VC_CMD(VHOST, 1, 0)
11523+#define VCMD_get_vhi_name VC_CMD(VHOST, 2, 0)
11524+
11525+struct vcmd_vhi_name_v0 {
11526+ uint32_t field;
11527+ char name[65];
11528+};
11529+
11530+
11531+enum vhi_name_field {
11532+ VHIN_CONTEXT = 0,
11533+ VHIN_SYSNAME,
11534+ VHIN_NODENAME,
11535+ VHIN_RELEASE,
11536+ VHIN_VERSION,
11537+ VHIN_MACHINE,
11538+ VHIN_DOMAINNAME,
11539+};
11540+ 10669+
11541+ 10670+
11542+#ifdef __KERNEL__
11543+
11544+#include <linux/compiler.h> 10671+#include <linux/compiler.h>
10672+#include <uapi/vserver/cvirt_cmd.h>
11545+ 10673+
11546+extern int vc_set_vhi_name(struct vx_info *, void __user *); 10674+extern int vc_set_vhi_name(struct vx_info *, void __user *);
11547+extern int vc_get_vhi_name(struct vx_info *, void __user *); 10675+extern int vc_get_vhi_name(struct vx_info *, void __user *);
11548+ 10676+
11549+#endif /* __KERNEL__ */
11550+
11551+#define VCMD_virt_stat VC_CMD(VSTAT, 3, 0)
11552+
11553+struct vcmd_virt_stat_v0 {
11554+ uint64_t offset;
11555+ uint64_t uptime;
11556+ uint32_t nr_threads;
11557+ uint32_t nr_running;
11558+ uint32_t nr_uninterruptible;
11559+ uint32_t nr_onhold;
11560+ uint32_t nr_forks;
11561+ uint32_t load[3];
11562+};
11563+
11564+#ifdef __KERNEL__
11565+extern int vc_virt_stat(struct vx_info *, void __user *); 10677+extern int vc_virt_stat(struct vx_info *, void __user *);
11566+ 10678+
11567+#endif /* __KERNEL__ */ 10679+#endif /* _VSERVER_CVIRT_CMD_H */
11568+#endif /* _VX_CVIRT_CMD_H */ 10680diff -NurpP --minimal linux-3.10.17/include/linux/vserver/cvirt_def.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/cvirt_def.h
11569diff -NurpP --minimal linux-3.4.57/include/linux/vserver/cvirt_def.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/cvirt_def.h 10681--- linux-3.10.17/include/linux/vserver/cvirt_def.h 1970-01-01 00:00:00.000000000 +0000
11570--- linux-3.4.57/include/linux/vserver/cvirt_def.h 1970-01-01 00:00:00.000000000 +0000 10682+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/cvirt_def.h 2013-08-22 20:30:00.000000000 +0000
11571+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/cvirt_def.h 2012-05-21 16:15:05.000000000 +0000
11572@@ -0,0 +1,80 @@ 10683@@ -0,0 +1,80 @@
11573+#ifndef _VX_CVIRT_DEF_H 10684+#ifndef _VSERVER_CVIRT_DEF_H
11574+#define _VX_CVIRT_DEF_H 10685+#define _VSERVER_CVIRT_DEF_H
11575+ 10686+
11576+#include <linux/jiffies.h> 10687+#include <linux/jiffies.h>
11577+#include <linux/spinlock.h> 10688+#include <linux/spinlock.h>
@@ -11649,13 +10760,13 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/cvirt_def.h linux-3.4.5
11649+ 10760+
11650+#endif 10761+#endif
11651+ 10762+
11652+#endif /* _VX_CVIRT_DEF_H */ 10763+#endif /* _VSERVER_CVIRT_DEF_H */
11653diff -NurpP --minimal linux-3.4.57/include/linux/vserver/debug.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/debug.h 10764diff -NurpP --minimal linux-3.10.17/include/linux/vserver/debug.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/debug.h
11654--- linux-3.4.57/include/linux/vserver/debug.h 1970-01-01 00:00:00.000000000 +0000 10765--- linux-3.10.17/include/linux/vserver/debug.h 1970-01-01 00:00:00.000000000 +0000
11655+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/debug.h 2012-05-21 16:15:05.000000000 +0000 10766+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/debug.h 2013-08-22 20:30:00.000000000 +0000
11656@@ -0,0 +1,145 @@ 10767@@ -0,0 +1,146 @@
11657+#ifndef _VX_DEBUG_H 10768+#ifndef _VSERVER_DEBUG_H
11658+#define _VX_DEBUG_H 10769+#define _VSERVER_DEBUG_H
11659+ 10770+
11660+ 10771+
11661+#define VXD_CBIT(n, m) (vs_debug_ ## n & (1 << (m))) 10772+#define VXD_CBIT(n, m) (vs_debug_ ## n & (1 << (m)))
@@ -11780,7 +10891,8 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/debug.h linux-3.4.57-vs
11780+#define vxwprintk_task(c, f, x...) \ 10891+#define vxwprintk_task(c, f, x...) \
11781+ vxwprintk(c, VX_WARN_TASK f, \ 10892+ vxwprintk(c, VX_WARN_TASK f, \
11782+ current->comm, current->pid, \ 10893+ current->comm, current->pid, \
11783+ current->xid, current->nid, current->tag, ##x) 10894+ current->xid, current->nid, \
10895+ current->tag, ##x)
11784+#define vxwprintk_xid(c, f, x...) \ 10896+#define vxwprintk_xid(c, f, x...) \
11785+ vxwprintk(c, VX_WARN_XID f, current->xid, x) 10897+ vxwprintk(c, VX_WARN_XID f, current->xid, x)
11786+#define vxwprintk_nid(c, f, x...) \ 10898+#define vxwprintk_nid(c, f, x...) \
@@ -11798,36 +10910,16 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/debug.h linux-3.4.57-vs
11798+#endif 10910+#endif
11799+ 10911+
11800+ 10912+
11801+#endif /* _VX_DEBUG_H */ 10913+#endif /* _VSERVER_DEBUG_H */
11802diff -NurpP --minimal linux-3.4.57/include/linux/vserver/debug_cmd.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/debug_cmd.h 10914diff -NurpP --minimal linux-3.10.17/include/linux/vserver/debug_cmd.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/debug_cmd.h
11803--- linux-3.4.57/include/linux/vserver/debug_cmd.h 1970-01-01 00:00:00.000000000 +0000 10915--- linux-3.10.17/include/linux/vserver/debug_cmd.h 1970-01-01 00:00:00.000000000 +0000
11804+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/debug_cmd.h 2012-05-21 16:15:05.000000000 +0000 10916+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/debug_cmd.h 2013-08-22 20:30:00.000000000 +0000
11805@@ -0,0 +1,58 @@ 10917@@ -0,0 +1,37 @@
11806+#ifndef _VX_DEBUG_CMD_H 10918+#ifndef _VSERVER_DEBUG_CMD_H
11807+#define _VX_DEBUG_CMD_H 10919+#define _VSERVER_DEBUG_CMD_H
11808+ 10920+
10921+#include <uapi/vserver/debug_cmd.h>
11809+ 10922+
11810+/* debug commands */
11811+
11812+#define VCMD_dump_history VC_CMD(DEBUG, 1, 0)
11813+
11814+#define VCMD_read_history VC_CMD(DEBUG, 5, 0)
11815+#define VCMD_read_monitor VC_CMD(DEBUG, 6, 0)
11816+
11817+struct vcmd_read_history_v0 {
11818+ uint32_t index;
11819+ uint32_t count;
11820+ char __user *data;
11821+};
11822+
11823+struct vcmd_read_monitor_v0 {
11824+ uint32_t index;
11825+ uint32_t count;
11826+ char __user *data;
11827+};
11828+
11829+
11830+#ifdef __KERNEL__
11831+ 10923+
11832+#ifdef CONFIG_COMPAT 10924+#ifdef CONFIG_COMPAT
11833+ 10925+
@@ -11859,48 +10951,29 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/debug_cmd.h linux-3.4.5
11859+ 10951+
11860+#endif /* CONFIG_COMPAT */ 10952+#endif /* CONFIG_COMPAT */
11861+ 10953+
11862+#endif /* __KERNEL__ */ 10954+#endif /* _VSERVER_DEBUG_CMD_H */
11863+#endif /* _VX_DEBUG_CMD_H */ 10955diff -NurpP --minimal linux-3.10.17/include/linux/vserver/device.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/device.h
11864diff -NurpP --minimal linux-3.4.57/include/linux/vserver/device.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/device.h 10956--- linux-3.10.17/include/linux/vserver/device.h 1970-01-01 00:00:00.000000000 +0000
11865--- linux-3.4.57/include/linux/vserver/device.h 1970-01-01 00:00:00.000000000 +0000 10957+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/device.h 2013-08-22 20:30:00.000000000 +0000
11866+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/device.h 2012-05-21 16:15:05.000000000 +0000 10958@@ -0,0 +1,9 @@
11867@@ -0,0 +1,15 @@ 10959+#ifndef _VSERVER_DEVICE_H
11868+#ifndef _VX_DEVICE_H 10960+#define _VSERVER_DEVICE_H
11869+#define _VX_DEVICE_H
11870+ 10961+
11871+ 10962+
11872+#define DATTR_CREATE 0x00000001 10963+#include <uapi/vserver/device.h>
11873+#define DATTR_OPEN 0x00000002
11874+ 10964+
11875+#define DATTR_REMAP 0x00000010 10965+#else /* _VSERVER_DEVICE_H */
11876+
11877+#define DATTR_MASK 0x00000013
11878+
11879+
11880+#else /* _VX_DEVICE_H */
11881+#warning duplicate inclusion 10966+#warning duplicate inclusion
11882+#endif /* _VX_DEVICE_H */ 10967+#endif /* _VSERVER_DEVICE_H */
11883diff -NurpP --minimal linux-3.4.57/include/linux/vserver/device_cmd.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/device_cmd.h 10968diff -NurpP --minimal linux-3.10.17/include/linux/vserver/device_cmd.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/device_cmd.h
11884--- linux-3.4.57/include/linux/vserver/device_cmd.h 1970-01-01 00:00:00.000000000 +0000 10969--- linux-3.10.17/include/linux/vserver/device_cmd.h 1970-01-01 00:00:00.000000000 +0000
11885+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/device_cmd.h 2012-05-21 16:15:05.000000000 +0000 10970+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/device_cmd.h 2013-08-22 20:30:00.000000000 +0000
11886@@ -0,0 +1,44 @@ 10971@@ -0,0 +1,31 @@
11887+#ifndef _VX_DEVICE_CMD_H 10972+#ifndef _VSERVER_DEVICE_CMD_H
11888+#define _VX_DEVICE_CMD_H 10973+#define _VSERVER_DEVICE_CMD_H
11889+
11890+
11891+/* device vserver commands */
11892+
11893+#define VCMD_set_mapping VC_CMD(DEVICE, 1, 0)
11894+#define VCMD_unset_mapping VC_CMD(DEVICE, 2, 0)
11895+
11896+struct vcmd_set_mapping_v0 {
11897+ const char __user *device;
11898+ const char __user *target;
11899+ uint32_t flags;
11900+};
11901+ 10974+
10975+#include <uapi/vserver/device_cmd.h>
11902+ 10976+
11903+#ifdef __KERNEL__
11904+ 10977+
11905+#ifdef CONFIG_COMPAT 10978+#ifdef CONFIG_COMPAT
11906+ 10979+
@@ -11926,14 +10999,13 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/device_cmd.h linux-3.4.
11926+ 10999+
11927+#endif /* CONFIG_COMPAT */ 11000+#endif /* CONFIG_COMPAT */
11928+ 11001+
11929+#endif /* __KERNEL__ */ 11002+#endif /* _VSERVER_DEVICE_CMD_H */
11930+#endif /* _VX_DEVICE_CMD_H */ 11003diff -NurpP --minimal linux-3.10.17/include/linux/vserver/device_def.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/device_def.h
11931diff -NurpP --minimal linux-3.4.57/include/linux/vserver/device_def.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/device_def.h 11004--- linux-3.10.17/include/linux/vserver/device_def.h 1970-01-01 00:00:00.000000000 +0000
11932--- linux-3.4.57/include/linux/vserver/device_def.h 1970-01-01 00:00:00.000000000 +0000 11005+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/device_def.h 2013-08-22 20:30:00.000000000 +0000
11933+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/device_def.h 2012-05-21 16:15:05.000000000 +0000
11934@@ -0,0 +1,17 @@ 11006@@ -0,0 +1,17 @@
11935+#ifndef _VX_DEVICE_DEF_H 11007+#ifndef _VSERVER_DEVICE_DEF_H
11936+#define _VX_DEVICE_DEF_H 11008+#define _VSERVER_DEVICE_DEF_H
11937+ 11009+
11938+#include <linux/types.h> 11010+#include <linux/types.h>
11939+ 11011+
@@ -11948,13 +11020,13 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/device_def.h linux-3.4.
11948+#endif 11020+#endif
11949+}; 11021+};
11950+ 11022+
11951+#endif /* _VX_DEVICE_DEF_H */ 11023+#endif /* _VSERVER_DEVICE_DEF_H */
11952diff -NurpP --minimal linux-3.4.57/include/linux/vserver/dlimit.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/dlimit.h 11024diff -NurpP --minimal linux-3.10.17/include/linux/vserver/dlimit.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/dlimit.h
11953--- linux-3.4.57/include/linux/vserver/dlimit.h 1970-01-01 00:00:00.000000000 +0000 11025--- linux-3.10.17/include/linux/vserver/dlimit.h 1970-01-01 00:00:00.000000000 +0000
11954+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/dlimit.h 2012-05-21 16:15:05.000000000 +0000 11026+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/dlimit.h 2013-08-22 20:30:00.000000000 +0000
11955@@ -0,0 +1,54 @@ 11027@@ -0,0 +1,54 @@
11956+#ifndef _VX_DLIMIT_H 11028+#ifndef _VSERVER_DLIMIT_H
11957+#define _VX_DLIMIT_H 11029+#define _VSERVER_DLIMIT_H
11958+ 11030+
11959+#include "switch.h" 11031+#include "switch.h"
11960+ 11032+
@@ -11973,7 +11045,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/dlimit.h linux-3.4.57-v
11973+struct dl_info { 11045+struct dl_info {
11974+ struct hlist_node dl_hlist; /* linked list of contexts */ 11046+ struct hlist_node dl_hlist; /* linked list of contexts */
11975+ struct rcu_head dl_rcu; /* the rcu head */ 11047+ struct rcu_head dl_rcu; /* the rcu head */
11976+ tag_t dl_tag; /* context tag */ 11048+ vtag_t dl_tag; /* context tag */
11977+ atomic_t dl_usecnt; /* usage count */ 11049+ atomic_t dl_usecnt; /* usage count */
11978+ atomic_t dl_refcnt; /* reference count */ 11050+ atomic_t dl_refcnt; /* reference count */
11979+ 11051+
@@ -11994,7 +11066,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/dlimit.h linux-3.4.57-v
11994+extern void rcu_free_dl_info(struct rcu_head *); 11066+extern void rcu_free_dl_info(struct rcu_head *);
11995+extern void unhash_dl_info(struct dl_info *); 11067+extern void unhash_dl_info(struct dl_info *);
11996+ 11068+
11997+extern struct dl_info *locate_dl_info(struct super_block *, tag_t); 11069+extern struct dl_info *locate_dl_info(struct super_block *, vtag_t);
11998+ 11070+
11999+ 11071+
12000+struct kstatfs; 11072+struct kstatfs;
@@ -12004,80 +11076,18 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/dlimit.h linux-3.4.57-v
12004+typedef uint64_t dlsize_t; 11076+typedef uint64_t dlsize_t;
12005+ 11077+
12006+#endif /* __KERNEL__ */ 11078+#endif /* __KERNEL__ */
12007+#else /* _VX_DLIMIT_H */ 11079+#else /* _VSERVER_DLIMIT_H */
12008+#warning duplicate inclusion 11080+#warning duplicate inclusion
12009+#endif /* _VX_DLIMIT_H */ 11081+#endif /* _VSERVER_DLIMIT_H */
12010diff -NurpP --minimal linux-3.4.57/include/linux/vserver/dlimit_cmd.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/dlimit_cmd.h 11082diff -NurpP --minimal linux-3.10.17/include/linux/vserver/dlimit_cmd.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/dlimit_cmd.h
12011--- linux-3.4.57/include/linux/vserver/dlimit_cmd.h 1970-01-01 00:00:00.000000000 +0000 11083--- linux-3.10.17/include/linux/vserver/dlimit_cmd.h 1970-01-01 00:00:00.000000000 +0000
12012+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/dlimit_cmd.h 2012-05-21 16:15:05.000000000 +0000 11084+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/dlimit_cmd.h 2013-08-22 20:30:00.000000000 +0000
12013@@ -0,0 +1,109 @@ 11085@@ -0,0 +1,46 @@
12014+#ifndef _VX_DLIMIT_CMD_H 11086+#ifndef _VSERVER_DLIMIT_CMD_H
12015+#define _VX_DLIMIT_CMD_H 11087+#define _VSERVER_DLIMIT_CMD_H
12016+
12017+
12018+/* dlimit vserver commands */
12019+
12020+#define VCMD_add_dlimit VC_CMD(DLIMIT, 1, 0)
12021+#define VCMD_rem_dlimit VC_CMD(DLIMIT, 2, 0)
12022+
12023+#define VCMD_set_dlimit VC_CMD(DLIMIT, 5, 0)
12024+#define VCMD_get_dlimit VC_CMD(DLIMIT, 6, 0)
12025+
12026+struct vcmd_ctx_dlimit_base_v0 {
12027+ const char __user *name;
12028+ uint32_t flags;
12029+};
12030+
12031+struct vcmd_ctx_dlimit_v0 {
12032+ const char __user *name;
12033+ uint32_t space_used; /* used space in kbytes */
12034+ uint32_t space_total; /* maximum space in kbytes */
12035+ uint32_t inodes_used; /* used inodes */
12036+ uint32_t inodes_total; /* maximum inodes */
12037+ uint32_t reserved; /* reserved for root in % */
12038+ uint32_t flags;
12039+};
12040+
12041+#define CDLIM_UNSET ((uint32_t)0UL)
12042+#define CDLIM_INFINITY ((uint32_t)~0UL)
12043+#define CDLIM_KEEP ((uint32_t)~1UL)
12044+
12045+#define DLIME_UNIT 0
12046+#define DLIME_KILO 1
12047+#define DLIME_MEGA 2
12048+#define DLIME_GIGA 3
12049+ 11088+
12050+#define DLIMF_SHIFT 0x10 11089+#include <uapi/vserver/dlimit_cmd.h>
12051+
12052+#define DLIMS_USED 0
12053+#define DLIMS_TOTAL 2
12054+
12055+static inline
12056+uint64_t dlimit_space_32to64(uint32_t val, uint32_t flags, int shift)
12057+{
12058+ int exp = (flags & DLIMF_SHIFT) ?
12059+ (flags >> shift) & DLIME_GIGA : DLIME_KILO;
12060+ return ((uint64_t)val) << (10 * exp);
12061+}
12062+ 11090+
12063+static inline
12064+uint32_t dlimit_space_64to32(uint64_t val, uint32_t *flags, int shift)
12065+{
12066+ int exp = 0;
12067+
12068+ if (*flags & DLIMF_SHIFT) {
12069+ while (val > (1LL << 32) && (exp < 3)) {
12070+ val >>= 10;
12071+ exp++;
12072+ }
12073+ *flags &= ~(DLIME_GIGA << shift);
12074+ *flags |= exp << shift;
12075+ } else
12076+ val >>= 10;
12077+ return val;
12078+}
12079+
12080+#ifdef __KERNEL__
12081+ 11091+
12082+#ifdef CONFIG_COMPAT 11092+#ifdef CONFIG_COMPAT
12083+ 11093+
@@ -12118,14 +11128,13 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/dlimit_cmd.h linux-3.4.
12118+ 11128+
12119+#endif /* CONFIG_COMPAT */ 11129+#endif /* CONFIG_COMPAT */
12120+ 11130+
12121+#endif /* __KERNEL__ */ 11131+#endif /* _VSERVER_DLIMIT_CMD_H */
12122+#endif /* _VX_DLIMIT_CMD_H */ 11132diff -NurpP --minimal linux-3.10.17/include/linux/vserver/global.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/global.h
12123diff -NurpP --minimal linux-3.4.57/include/linux/vserver/global.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/global.h 11133--- linux-3.10.17/include/linux/vserver/global.h 1970-01-01 00:00:00.000000000 +0000
12124--- linux-3.4.57/include/linux/vserver/global.h 1970-01-01 00:00:00.000000000 +0000 11134+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/global.h 2013-08-22 20:30:00.000000000 +0000
12125+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/global.h 2012-05-21 16:15:05.000000000 +0000
12126@@ -0,0 +1,19 @@ 11135@@ -0,0 +1,19 @@
12127+#ifndef _VX_GLOBAL_H 11136+#ifndef _VSERVER_GLOBAL_H
12128+#define _VX_GLOBAL_H 11137+#define _VSERVER_GLOBAL_H
12129+ 11138+
12130+ 11139+
12131+extern atomic_t vx_global_ctotal; 11140+extern atomic_t vx_global_ctotal;
@@ -12142,13 +11151,13 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/global.h linux-3.4.57-v
12142+extern atomic_t vs_global_pid_ns; 11151+extern atomic_t vs_global_pid_ns;
12143+ 11152+
12144+ 11153+
12145+#endif /* _VX_GLOBAL_H */ 11154+#endif /* _VSERVER_GLOBAL_H */
12146diff -NurpP --minimal linux-3.4.57/include/linux/vserver/history.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/history.h 11155diff -NurpP --minimal linux-3.10.17/include/linux/vserver/history.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/history.h
12147--- linux-3.4.57/include/linux/vserver/history.h 1970-01-01 00:00:00.000000000 +0000 11156--- linux-3.10.17/include/linux/vserver/history.h 1970-01-01 00:00:00.000000000 +0000
12148+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/history.h 2012-05-21 16:15:05.000000000 +0000 11157+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/history.h 2013-08-22 20:30:00.000000000 +0000
12149@@ -0,0 +1,197 @@ 11158@@ -0,0 +1,197 @@
12150+#ifndef _VX_HISTORY_H 11159+#ifndef _VSERVER_HISTORY_H
12151+#define _VX_HISTORY_H 11160+#define _VSERVER_HISTORY_H
12152+ 11161+
12153+ 11162+
12154+enum { 11163+enum {
@@ -12343,28 +11352,15 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/history.h linux-3.4.57-
12343+ 11352+
12344+#endif /* CONFIG_VSERVER_HISTORY */ 11353+#endif /* CONFIG_VSERVER_HISTORY */
12345+ 11354+
12346+#endif /* _VX_HISTORY_H */ 11355+#endif /* _VSERVER_HISTORY_H */
12347diff -NurpP --minimal linux-3.4.57/include/linux/vserver/inode.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/inode.h 11356diff -NurpP --minimal linux-3.10.17/include/linux/vserver/inode.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/inode.h
12348--- linux-3.4.57/include/linux/vserver/inode.h 1970-01-01 00:00:00.000000000 +0000 11357--- linux-3.10.17/include/linux/vserver/inode.h 1970-01-01 00:00:00.000000000 +0000
12349+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/inode.h 2012-05-21 16:15:05.000000000 +0000 11358+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/inode.h 2013-08-22 20:30:00.000000000 +0000
12350@@ -0,0 +1,39 @@ 11359@@ -0,0 +1,19 @@
12351+#ifndef _VX_INODE_H 11360+#ifndef _VSERVER_INODE_H
12352+#define _VX_INODE_H 11361+#define _VSERVER_INODE_H
12353+
12354+
12355+#define IATTR_TAG 0x01000000
12356+
12357+#define IATTR_ADMIN 0x00000001
12358+#define IATTR_WATCH 0x00000002
12359+#define IATTR_HIDE 0x00000004
12360+#define IATTR_FLAGS 0x00000007
12361+
12362+#define IATTR_BARRIER 0x00010000
12363+#define IATTR_IXUNLINK 0x00020000
12364+#define IATTR_IMMUTABLE 0x00040000
12365+#define IATTR_COW 0x00080000
12366+ 11362+
12367+#ifdef __KERNEL__ 11363+#include <uapi/vserver/inode.h>
12368+ 11364+
12369+ 11365+
12370+#ifdef CONFIG_VSERVER_PROC_SECURE 11366+#ifdef CONFIG_VSERVER_PROC_SECURE
@@ -12377,47 +11373,18 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/inode.h linux-3.4.57-vs
12377+ 11373+
12378+#define vx_hide_check(c, m) (((m) & IATTR_HIDE) ? vx_check(c, m) : 1) 11374+#define vx_hide_check(c, m) (((m) & IATTR_HIDE) ? vx_check(c, m) : 1)
12379+ 11375+
12380+#endif /* __KERNEL__ */ 11376+#else /* _VSERVER_INODE_H */
12381+
12382+/* inode ioctls */
12383+
12384+#define FIOC_GETXFLG _IOR('x', 5, long)
12385+#define FIOC_SETXFLG _IOW('x', 6, long)
12386+
12387+#else /* _VX_INODE_H */
12388+#warning duplicate inclusion 11377+#warning duplicate inclusion
12389+#endif /* _VX_INODE_H */ 11378+#endif /* _VSERVER_INODE_H */
12390diff -NurpP --minimal linux-3.4.57/include/linux/vserver/inode_cmd.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/inode_cmd.h 11379diff -NurpP --minimal linux-3.10.17/include/linux/vserver/inode_cmd.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/inode_cmd.h
12391--- linux-3.4.57/include/linux/vserver/inode_cmd.h 1970-01-01 00:00:00.000000000 +0000 11380--- linux-3.10.17/include/linux/vserver/inode_cmd.h 1970-01-01 00:00:00.000000000 +0000
12392+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/inode_cmd.h 2012-05-21 16:15:05.000000000 +0000 11381+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/inode_cmd.h 2013-08-22 20:30:00.000000000 +0000
12393@@ -0,0 +1,59 @@ 11382@@ -0,0 +1,36 @@
12394+#ifndef _VX_INODE_CMD_H 11383+#ifndef _VSERVER_INODE_CMD_H
12395+#define _VX_INODE_CMD_H 11384+#define _VSERVER_INODE_CMD_H
12396+
12397+
12398+/* inode vserver commands */
12399+
12400+#define VCMD_get_iattr VC_CMD(INODE, 1, 1)
12401+#define VCMD_set_iattr VC_CMD(INODE, 2, 1)
12402+
12403+#define VCMD_fget_iattr VC_CMD(INODE, 3, 0)
12404+#define VCMD_fset_iattr VC_CMD(INODE, 4, 0)
12405+
12406+struct vcmd_ctx_iattr_v1 {
12407+ const char __user *name;
12408+ uint32_t tag;
12409+ uint32_t flags;
12410+ uint32_t mask;
12411+};
12412+
12413+struct vcmd_ctx_fiattr_v0 {
12414+ uint32_t tag;
12415+ uint32_t flags;
12416+ uint32_t mask;
12417+};
12418+ 11385+
11386+#include <uapi/vserver/inode_cmd.h>
12419+ 11387+
12420+#ifdef __KERNEL__
12421+ 11388+
12422+ 11389+
12423+#ifdef CONFIG_COMPAT 11390+#ifdef CONFIG_COMPAT
@@ -12448,27 +11415,17 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/inode_cmd.h linux-3.4.5
12448+ 11415+
12449+#endif /* CONFIG_COMPAT */ 11416+#endif /* CONFIG_COMPAT */
12450+ 11417+
12451+#endif /* __KERNEL__ */ 11418+#endif /* _VSERVER_INODE_CMD_H */
12452+#endif /* _VX_INODE_CMD_H */ 11419diff -NurpP --minimal linux-3.10.17/include/linux/vserver/limit.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/limit.h
12453diff -NurpP --minimal linux-3.4.57/include/linux/vserver/limit.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/limit.h 11420--- linux-3.10.17/include/linux/vserver/limit.h 1970-01-01 00:00:00.000000000 +0000
12454--- linux-3.4.57/include/linux/vserver/limit.h 1970-01-01 00:00:00.000000000 +0000 11421+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/limit.h 2013-08-22 20:30:00.000000000 +0000
12455+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/limit.h 2012-05-21 16:15:05.000000000 +0000 11422@@ -0,0 +1,61 @@
12456@@ -0,0 +1,71 @@ 11423+#ifndef _VSERVER_LIMIT_H
12457+#ifndef _VX_LIMIT_H 11424+#define _VSERVER_LIMIT_H
12458+#define _VX_LIMIT_H
12459+ 11425+
12460+#define VLIMIT_NSOCK 16 11426+#include <uapi/vserver/limit.h>
12461+#define VLIMIT_OPENFD 17
12462+#define VLIMIT_ANON 18
12463+#define VLIMIT_SHMEM 19
12464+#define VLIMIT_SEMARY 20
12465+#define VLIMIT_NSEMS 21
12466+#define VLIMIT_DENTRY 22
12467+#define VLIMIT_MAPPED 23
12468+ 11427+
12469+ 11428+
12470+#ifdef __KERNEL__
12471+
12472+#define VLIM_NOCHECK ((1L << VLIMIT_DENTRY) | (1L << RLIMIT_RSS)) 11429+#define VLIM_NOCHECK ((1L << VLIMIT_DENTRY) | (1L << RLIMIT_RSS))
12473+ 11430+
12474+/* keep in sync with CRLIM_INFINITY */ 11431+/* keep in sync with CRLIM_INFINITY */
@@ -12523,52 +11480,16 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/limit.h linux-3.4.57-vs
12523+ 11480+
12524+#define NUM_LIMITS 24 11481+#define NUM_LIMITS 24
12525+ 11482+
12526+#endif /* __KERNEL__ */ 11483+#endif /* _VSERVER_LIMIT_H */
12527+#endif /* _VX_LIMIT_H */ 11484diff -NurpP --minimal linux-3.10.17/include/linux/vserver/limit_cmd.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/limit_cmd.h
12528diff -NurpP --minimal linux-3.4.57/include/linux/vserver/limit_cmd.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/limit_cmd.h 11485--- linux-3.10.17/include/linux/vserver/limit_cmd.h 1970-01-01 00:00:00.000000000 +0000
12529--- linux-3.4.57/include/linux/vserver/limit_cmd.h 1970-01-01 00:00:00.000000000 +0000 11486+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/limit_cmd.h 2013-08-22 20:30:00.000000000 +0000
12530+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/limit_cmd.h 2012-05-21 16:15:05.000000000 +0000 11487@@ -0,0 +1,35 @@
12531@@ -0,0 +1,71 @@ 11488+#ifndef _VSERVER_LIMIT_CMD_H
12532+#ifndef _VX_LIMIT_CMD_H 11489+#define _VSERVER_LIMIT_CMD_H
12533+#define _VX_LIMIT_CMD_H
12534+ 11490+
11491+#include <uapi/vserver/limit_cmd.h>
12535+ 11492+
12536+/* rlimit vserver commands */
12537+
12538+#define VCMD_get_rlimit VC_CMD(RLIMIT, 1, 0)
12539+#define VCMD_set_rlimit VC_CMD(RLIMIT, 2, 0)
12540+#define VCMD_get_rlimit_mask VC_CMD(RLIMIT, 3, 0)
12541+#define VCMD_reset_hits VC_CMD(RLIMIT, 7, 0)
12542+#define VCMD_reset_minmax VC_CMD(RLIMIT, 9, 0)
12543+
12544+struct vcmd_ctx_rlimit_v0 {
12545+ uint32_t id;
12546+ uint64_t minimum;
12547+ uint64_t softlimit;
12548+ uint64_t maximum;
12549+};
12550+
12551+struct vcmd_ctx_rlimit_mask_v0 {
12552+ uint32_t minimum;
12553+ uint32_t softlimit;
12554+ uint32_t maximum;
12555+};
12556+
12557+#define VCMD_rlimit_stat VC_CMD(VSTAT, 1, 0)
12558+
12559+struct vcmd_rlimit_stat_v0 {
12560+ uint32_t id;
12561+ uint32_t hits;
12562+ uint64_t value;
12563+ uint64_t minimum;
12564+ uint64_t maximum;
12565+};
12566+
12567+#define CRLIM_UNSET (0ULL)
12568+#define CRLIM_INFINITY (~0ULL)
12569+#define CRLIM_KEEP (~1ULL)
12570+
12571+#ifdef __KERNEL__
12572+ 11493+
12573+#ifdef CONFIG_IA32_EMULATION 11494+#ifdef CONFIG_IA32_EMULATION
12574+ 11495+
@@ -12598,14 +11519,13 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/limit_cmd.h linux-3.4.5
12598+ 11519+
12599+#endif /* CONFIG_IA32_EMULATION */ 11520+#endif /* CONFIG_IA32_EMULATION */
12600+ 11521+
12601+#endif /* __KERNEL__ */ 11522+#endif /* _VSERVER_LIMIT_CMD_H */
12602+#endif /* _VX_LIMIT_CMD_H */ 11523diff -NurpP --minimal linux-3.10.17/include/linux/vserver/limit_def.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/limit_def.h
12603diff -NurpP --minimal linux-3.4.57/include/linux/vserver/limit_def.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/limit_def.h 11524--- linux-3.10.17/include/linux/vserver/limit_def.h 1970-01-01 00:00:00.000000000 +0000
12604--- linux-3.4.57/include/linux/vserver/limit_def.h 1970-01-01 00:00:00.000000000 +0000 11525+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/limit_def.h 2013-08-22 20:30:00.000000000 +0000
12605+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/limit_def.h 2012-05-21 16:15:05.000000000 +0000
12606@@ -0,0 +1,47 @@ 11526@@ -0,0 +1,47 @@
12607+#ifndef _VX_LIMIT_DEF_H 11527+#ifndef _VSERVER_LIMIT_DEF_H
12608+#define _VX_LIMIT_DEF_H 11528+#define _VSERVER_LIMIT_DEF_H
12609+ 11529+
12610+#include <asm/atomic.h> 11530+#include <asm/atomic.h>
12611+#include <asm/resource.h> 11531+#include <asm/resource.h>
@@ -12650,17 +11570,13 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/limit_def.h linux-3.4.5
12650+ 11570+
12651+#endif 11571+#endif
12652+ 11572+
12653+#endif /* _VX_LIMIT_DEF_H */ 11573+#endif /* _VSERVER_LIMIT_DEF_H */
12654diff -NurpP --minimal linux-3.4.57/include/linux/vserver/limit_int.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/limit_int.h 11574diff -NurpP --minimal linux-3.10.17/include/linux/vserver/limit_int.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/limit_int.h
12655--- linux-3.4.57/include/linux/vserver/limit_int.h 1970-01-01 00:00:00.000000000 +0000 11575--- linux-3.10.17/include/linux/vserver/limit_int.h 1970-01-01 00:00:00.000000000 +0000
12656+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/limit_int.h 2012-05-21 16:15:05.000000000 +0000 11576+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/limit_int.h 2013-08-22 20:30:00.000000000 +0000
12657@@ -0,0 +1,198 @@ 11577@@ -0,0 +1,193 @@
12658+#ifndef _VX_LIMIT_INT_H 11578+#ifndef _VSERVER_LIMIT_INT_H
12659+#define _VX_LIMIT_INT_H 11579+#define _VSERVER_LIMIT_INT_H
12660+
12661+#include "context.h"
12662+
12663+#ifdef __KERNEL__
12664+ 11580+
12665+#define VXD_RCRES_COND(r) VXD_CBIT(cres, r) 11581+#define VXD_RCRES_COND(r) VXD_CBIT(cres, r)
12666+#define VXD_RLIMIT_COND(r) VXD_CBIT(limit, r) 11582+#define VXD_RLIMIT_COND(r) VXD_CBIT(limit, r)
@@ -12851,188 +11767,24 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/limit_int.h linux-3.4.5
12851+} 11767+}
12852+ 11768+
12853+ 11769+
12854+#endif /* __KERNEL__ */ 11770+#endif /* _VSERVER_LIMIT_INT_H */
12855+#endif /* _VX_LIMIT_INT_H */ 11771diff -NurpP --minimal linux-3.10.17/include/linux/vserver/monitor.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/monitor.h
12856diff -NurpP --minimal linux-3.4.57/include/linux/vserver/monitor.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/monitor.h 11772--- linux-3.10.17/include/linux/vserver/monitor.h 1970-01-01 00:00:00.000000000 +0000
12857--- linux-3.4.57/include/linux/vserver/monitor.h 1970-01-01 00:00:00.000000000 +0000 11773+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/monitor.h 2013-08-22 20:30:00.000000000 +0000
12858+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/monitor.h 2012-05-21 16:15:05.000000000 +0000 11774@@ -0,0 +1,6 @@
12859@@ -0,0 +1,96 @@ 11775+#ifndef _VSERVER_MONITOR_H
12860+#ifndef _VX_MONITOR_H 11776+#define _VSERVER_MONITOR_H
12861+#define _VX_MONITOR_H
12862+
12863+#include <linux/types.h>
12864+
12865+enum {
12866+ VXM_UNUSED = 0,
12867+
12868+ VXM_SYNC = 0x10,
12869+
12870+ VXM_UPDATE = 0x20,
12871+ VXM_UPDATE_1,
12872+ VXM_UPDATE_2,
12873+
12874+ VXM_RQINFO_1 = 0x24,
12875+ VXM_RQINFO_2,
12876+
12877+ VXM_ACTIVATE = 0x40,
12878+ VXM_DEACTIVATE,
12879+ VXM_IDLE,
12880+
12881+ VXM_HOLD = 0x44,
12882+ VXM_UNHOLD,
12883+
12884+ VXM_MIGRATE = 0x48,
12885+ VXM_RESCHED,
12886+
12887+ /* all other bits are flags */
12888+ VXM_SCHED = 0x80,
12889+};
12890+
12891+struct _vxm_update_1 {
12892+ uint32_t tokens_max;
12893+ uint32_t fill_rate;
12894+ uint32_t interval;
12895+};
12896+
12897+struct _vxm_update_2 {
12898+ uint32_t tokens_min;
12899+ uint32_t fill_rate;
12900+ uint32_t interval;
12901+};
12902+
12903+struct _vxm_rqinfo_1 {
12904+ uint16_t running;
12905+ uint16_t onhold;
12906+ uint16_t iowait;
12907+ uint16_t uintr;
12908+ uint32_t idle_tokens;
12909+};
12910+
12911+struct _vxm_rqinfo_2 {
12912+ uint32_t norm_time;
12913+ uint32_t idle_time;
12914+ uint32_t idle_skip;
12915+};
12916+
12917+struct _vxm_sched {
12918+ uint32_t tokens;
12919+ uint32_t norm_time;
12920+ uint32_t idle_time;
12921+};
12922+ 11777+
12923+struct _vxm_task { 11778+#include <uapi/vserver/monitor.h>
12924+ uint16_t pid;
12925+ uint16_t state;
12926+};
12927+ 11779+
12928+struct _vxm_event { 11780+#endif /* _VSERVER_MONITOR_H */
12929+ uint32_t jif; 11781diff -NurpP --minimal linux-3.10.17/include/linux/vserver/network.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/network.h
12930+ union { 11782--- linux-3.10.17/include/linux/vserver/network.h 1970-01-01 00:00:00.000000000 +0000
12931+ uint32_t seq; 11783+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/network.h 2013-08-22 20:30:00.000000000 +0000
12932+ uint32_t sec; 11784@@ -0,0 +1,76 @@
12933+ }; 11785+#ifndef _VSERVER_NETWORK_H
12934+ union { 11786+#define _VSERVER_NETWORK_H
12935+ uint32_t tokens;
12936+ uint32_t nsec;
12937+ struct _vxm_task tsk;
12938+ };
12939+};
12940+
12941+struct _vx_mon_entry {
12942+ uint16_t type;
12943+ uint16_t xid;
12944+ union {
12945+ struct _vxm_event ev;
12946+ struct _vxm_sched sd;
12947+ struct _vxm_update_1 u1;
12948+ struct _vxm_update_2 u2;
12949+ struct _vxm_rqinfo_1 q1;
12950+ struct _vxm_rqinfo_2 q2;
12951+ };
12952+};
12953+
12954+
12955+#endif /* _VX_MONITOR_H */
12956diff -NurpP --minimal linux-3.4.57/include/linux/vserver/network.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/network.h
12957--- linux-3.4.57/include/linux/vserver/network.h 1970-01-01 00:00:00.000000000 +0000
12958+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/network.h 2012-05-21 16:15:05.000000000 +0000
12959@@ -0,0 +1,148 @@
12960+#ifndef _VX_NETWORK_H
12961+#define _VX_NETWORK_H
12962+
12963+#include <linux/types.h>
12964+
12965+
12966+#define MAX_N_CONTEXT 65535 /* Arbitrary limit */
12967+
12968+
12969+/* network flags */
12970+
12971+#define NXF_INFO_PRIVATE 0x00000008
12972+
12973+#define NXF_SINGLE_IP 0x00000100
12974+#define NXF_LBACK_REMAP 0x00000200
12975+#define NXF_LBACK_ALLOW 0x00000400
12976+
12977+#define NXF_HIDE_NETIF 0x02000000
12978+#define NXF_HIDE_LBACK 0x04000000
12979+
12980+#define NXF_STATE_SETUP (1ULL << 32)
12981+#define NXF_STATE_ADMIN (1ULL << 34)
12982+
12983+#define NXF_SC_HELPER (1ULL << 36)
12984+#define NXF_PERSISTENT (1ULL << 38)
12985+
12986+#define NXF_ONE_TIME (0x0005ULL << 32)
12987+
12988+
12989+#define NXF_INIT_SET (__nxf_init_set())
12990+
12991+static inline uint64_t __nxf_init_set(void) {
12992+ return NXF_STATE_ADMIN
12993+#ifdef CONFIG_VSERVER_AUTO_LBACK
12994+ | NXF_LBACK_REMAP
12995+ | NXF_HIDE_LBACK
12996+#endif
12997+#ifdef CONFIG_VSERVER_AUTO_SINGLE
12998+ | NXF_SINGLE_IP
12999+#endif
13000+ | NXF_HIDE_NETIF;
13001+}
13002+
13003+
13004+/* network caps */
13005+
13006+#define NXC_TUN_CREATE 0x00000001
13007+
13008+#define NXC_RAW_ICMP 0x00000100
13009+
13010+#define NXC_MULTICAST 0x00001000
13011+
13012+
13013+/* address types */
13014+
13015+#define NXA_TYPE_IPV4 0x0001
13016+#define NXA_TYPE_IPV6 0x0002
13017+
13018+#define NXA_TYPE_NONE 0x0000
13019+#define NXA_TYPE_ANY 0x00FF
13020+
13021+#define NXA_TYPE_ADDR 0x0010
13022+#define NXA_TYPE_MASK 0x0020
13023+#define NXA_TYPE_RANGE 0x0040
13024+
13025+#define NXA_MASK_ALL (NXA_TYPE_ADDR | NXA_TYPE_MASK | NXA_TYPE_RANGE)
13026+
13027+#define NXA_MOD_BCAST 0x0100
13028+#define NXA_MOD_LBACK 0x0200
13029+
13030+#define NXA_LOOPBACK 0x1000
13031+
13032+#define NXA_MASK_BIND (NXA_MASK_ALL | NXA_MOD_BCAST | NXA_MOD_LBACK)
13033+#define NXA_MASK_SHOW (NXA_MASK_ALL | NXA_LOOPBACK)
13034+ 11787+
13035+#ifdef __KERNEL__
13036+ 11788+
13037+#include <linux/list.h> 11789+#include <linux/list.h>
13038+#include <linux/spinlock.h> 11790+#include <linux/spinlock.h>
@@ -13040,6 +11792,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/network.h linux-3.4.57-
13040+#include <linux/in.h> 11792+#include <linux/in.h>
13041+#include <linux/in6.h> 11793+#include <linux/in6.h>
13042+#include <asm/atomic.h> 11794+#include <asm/atomic.h>
11795+#include <uapi/vserver/network.h>
13043+ 11796+
13044+struct nx_addr_v4 { 11797+struct nx_addr_v4 {
13045+ struct nx_addr_v4 *next; 11798+ struct nx_addr_v4 *next;
@@ -13060,7 +11813,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/network.h linux-3.4.57-
13060+ 11813+
13061+struct nx_info { 11814+struct nx_info {
13062+ struct hlist_node nx_hlist; /* linked list of nxinfos */ 11815+ struct hlist_node nx_hlist; /* linked list of nxinfos */
13063+ nid_t nx_id; /* vnet id */ 11816+ vnid_t nx_id; /* vnet id */
13064+ atomic_t nx_usecnt; /* usage count */ 11817+ atomic_t nx_usecnt; /* usage count */
13065+ atomic_t nx_tasks; /* tasks count */ 11818+ atomic_t nx_tasks; /* tasks count */
13066+ int nx_state; /* context state */ 11819+ int nx_state; /* context state */
@@ -13068,6 +11821,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/network.h linux-3.4.57-
13068+ uint64_t nx_flags; /* network flag word */ 11821+ uint64_t nx_flags; /* network flag word */
13069+ uint64_t nx_ncaps; /* network capabilities */ 11822+ uint64_t nx_ncaps; /* network capabilities */
13070+ 11823+
11824+ spinlock_t addr_lock; /* protect address changes */
13071+ struct in_addr v4_lback; /* Loopback address */ 11825+ struct in_addr v4_lback; /* Loopback address */
13072+ struct in_addr v4_bcast; /* Broadcast address */ 11826+ struct in_addr v4_bcast; /* Broadcast address */
13073+ struct nx_addr_v4 v4; /* First/Single ipv4 address */ 11827+ struct nx_addr_v4 v4; /* First/Single ipv4 address */
@@ -13087,7 +11841,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/network.h linux-3.4.57-
13087+extern struct nx_info *lookup_nx_info(int); 11841+extern struct nx_info *lookup_nx_info(int);
13088+ 11842+
13089+extern int get_nid_list(int, unsigned int *, int); 11843+extern int get_nid_list(int, unsigned int *, int);
13090+extern int nid_is_hashed(nid_t); 11844+extern int nid_is_hashed(vnid_t);
13091+ 11845+
13092+extern int nx_migrate_task(struct task_struct *, struct nx_info *); 11846+extern int nx_migrate_task(struct task_struct *, struct nx_info *);
13093+ 11847+
@@ -13103,119 +11857,20 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/network.h linux-3.4.57-
13103+#define NX_IPV6(n) (0) 11857+#define NX_IPV6(n) (0)
13104+#endif 11858+#endif
13105+ 11859+
13106+#endif /* __KERNEL__ */ 11860+#endif /* _VSERVER_NETWORK_H */
13107+#endif /* _VX_NETWORK_H */ 11861diff -NurpP --minimal linux-3.10.17/include/linux/vserver/network_cmd.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/network_cmd.h
13108diff -NurpP --minimal linux-3.4.57/include/linux/vserver/network_cmd.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/network_cmd.h 11862--- linux-3.10.17/include/linux/vserver/network_cmd.h 1970-01-01 00:00:00.000000000 +0000
13109--- linux-3.4.57/include/linux/vserver/network_cmd.h 1970-01-01 00:00:00.000000000 +0000 11863+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/network_cmd.h 2013-08-22 20:30:00.000000000 +0000
13110+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/network_cmd.h 2012-05-21 16:15:05.000000000 +0000 11864@@ -0,0 +1,37 @@
13111@@ -0,0 +1,164 @@ 11865+#ifndef _VSERVER_NETWORK_CMD_H
13112+#ifndef _VX_NETWORK_CMD_H 11866+#define _VSERVER_NETWORK_CMD_H
13113+#define _VX_NETWORK_CMD_H
13114+
13115+ 11867+
13116+/* vinfo commands */ 11868+#include <uapi/vserver/network_cmd.h>
13117+ 11869+
13118+#define VCMD_task_nid VC_CMD(VINFO, 2, 0)
13119+
13120+#ifdef __KERNEL__
13121+extern int vc_task_nid(uint32_t); 11870+extern int vc_task_nid(uint32_t);
13122+ 11871+
13123+#endif /* __KERNEL__ */
13124+
13125+#define VCMD_nx_info VC_CMD(VINFO, 6, 0)
13126+
13127+struct vcmd_nx_info_v0 {
13128+ uint32_t nid;
13129+ /* more to come */
13130+};
13131+
13132+#ifdef __KERNEL__
13133+extern int vc_nx_info(struct nx_info *, void __user *); 11872+extern int vc_nx_info(struct nx_info *, void __user *);
13134+ 11873+
13135+#endif /* __KERNEL__ */
13136+
13137+#include <linux/in.h>
13138+#include <linux/in6.h>
13139+
13140+#define VCMD_net_create_v0 VC_CMD(VNET, 1, 0)
13141+#define VCMD_net_create VC_CMD(VNET, 1, 1)
13142+
13143+struct vcmd_net_create {
13144+ uint64_t flagword;
13145+};
13146+
13147+#define VCMD_net_migrate VC_CMD(NETMIG, 1, 0)
13148+
13149+#define VCMD_net_add VC_CMD(NETALT, 1, 0)
13150+#define VCMD_net_remove VC_CMD(NETALT, 2, 0)
13151+
13152+struct vcmd_net_addr_v0 {
13153+ uint16_t type;
13154+ uint16_t count;
13155+ struct in_addr ip[4];
13156+ struct in_addr mask[4];
13157+};
13158+
13159+#define VCMD_net_add_ipv4_v1 VC_CMD(NETALT, 1, 1)
13160+#define VCMD_net_rem_ipv4_v1 VC_CMD(NETALT, 2, 1)
13161+
13162+struct vcmd_net_addr_ipv4_v1 {
13163+ uint16_t type;
13164+ uint16_t flags;
13165+ struct in_addr ip;
13166+ struct in_addr mask;
13167+};
13168+
13169+#define VCMD_net_add_ipv4 VC_CMD(NETALT, 1, 2)
13170+#define VCMD_net_rem_ipv4 VC_CMD(NETALT, 2, 2)
13171+
13172+struct vcmd_net_addr_ipv4_v2 {
13173+ uint16_t type;
13174+ uint16_t flags;
13175+ struct in_addr ip;
13176+ struct in_addr ip2;
13177+ struct in_addr mask;
13178+};
13179+
13180+#define VCMD_net_add_ipv6 VC_CMD(NETALT, 3, 1)
13181+#define VCMD_net_remove_ipv6 VC_CMD(NETALT, 4, 1)
13182+
13183+struct vcmd_net_addr_ipv6_v1 {
13184+ uint16_t type;
13185+ uint16_t flags;
13186+ uint32_t prefix;
13187+ struct in6_addr ip;
13188+ struct in6_addr mask;
13189+};
13190+
13191+#define VCMD_add_match_ipv4 VC_CMD(NETALT, 5, 0)
13192+#define VCMD_get_match_ipv4 VC_CMD(NETALT, 6, 0)
13193+
13194+struct vcmd_match_ipv4_v0 {
13195+ uint16_t type;
13196+ uint16_t flags;
13197+ uint16_t parent;
13198+ uint16_t prefix;
13199+ struct in_addr ip;
13200+ struct in_addr ip2;
13201+ struct in_addr mask;
13202+};
13203+
13204+#define VCMD_add_match_ipv6 VC_CMD(NETALT, 7, 0)
13205+#define VCMD_get_match_ipv6 VC_CMD(NETALT, 8, 0)
13206+
13207+struct vcmd_match_ipv6_v0 {
13208+ uint16_t type;
13209+ uint16_t flags;
13210+ uint16_t parent;
13211+ uint16_t prefix;
13212+ struct in6_addr ip;
13213+ struct in6_addr ip2;
13214+ struct in6_addr mask;
13215+};
13216+
13217+
13218+#ifdef __KERNEL__
13219+extern int vc_net_create(uint32_t, void __user *); 11874+extern int vc_net_create(uint32_t, void __user *);
13220+extern int vc_net_migrate(struct nx_info *, void __user *); 11875+extern int vc_net_migrate(struct nx_info *, void __user *);
13221+ 11876+
@@ -13237,48 +11892,19 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/network_cmd.h linux-3.4
13237+extern int vc_add_match_ipv6(struct nx_info *, void __user *); 11892+extern int vc_add_match_ipv6(struct nx_info *, void __user *);
13238+extern int vc_get_match_ipv6(struct nx_info *, void __user *); 11893+extern int vc_get_match_ipv6(struct nx_info *, void __user *);
13239+ 11894+
13240+#endif /* __KERNEL__ */
13241+
13242+
13243+/* flag commands */
13244+
13245+#define VCMD_get_nflags VC_CMD(FLAGS, 5, 0)
13246+#define VCMD_set_nflags VC_CMD(FLAGS, 6, 0)
13247+
13248+struct vcmd_net_flags_v0 {
13249+ uint64_t flagword;
13250+ uint64_t mask;
13251+};
13252+
13253+#ifdef __KERNEL__
13254+extern int vc_get_nflags(struct nx_info *, void __user *); 11895+extern int vc_get_nflags(struct nx_info *, void __user *);
13255+extern int vc_set_nflags(struct nx_info *, void __user *); 11896+extern int vc_set_nflags(struct nx_info *, void __user *);
13256+ 11897+
13257+#endif /* __KERNEL__ */
13258+
13259+
13260+/* network caps commands */
13261+
13262+#define VCMD_get_ncaps VC_CMD(FLAGS, 7, 0)
13263+#define VCMD_set_ncaps VC_CMD(FLAGS, 8, 0)
13264+
13265+struct vcmd_net_caps_v0 {
13266+ uint64_t ncaps;
13267+ uint64_t cmask;
13268+};
13269+
13270+#ifdef __KERNEL__
13271+extern int vc_get_ncaps(struct nx_info *, void __user *); 11898+extern int vc_get_ncaps(struct nx_info *, void __user *);
13272+extern int vc_set_ncaps(struct nx_info *, void __user *); 11899+extern int vc_set_ncaps(struct nx_info *, void __user *);
13273+ 11900+
13274+#endif /* __KERNEL__ */ 11901+#endif /* _VSERVER_CONTEXT_CMD_H */
13275+#endif /* _VX_CONTEXT_CMD_H */ 11902diff -NurpP --minimal linux-3.10.17/include/linux/vserver/percpu.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/percpu.h
13276diff -NurpP --minimal linux-3.4.57/include/linux/vserver/percpu.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/percpu.h 11903--- linux-3.10.17/include/linux/vserver/percpu.h 1970-01-01 00:00:00.000000000 +0000
13277--- linux-3.4.57/include/linux/vserver/percpu.h 1970-01-01 00:00:00.000000000 +0000 11904+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/percpu.h 2013-08-22 20:30:00.000000000 +0000
13278+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/percpu.h 2012-05-21 16:15:05.000000000 +0000
13279@@ -0,0 +1,14 @@ 11905@@ -0,0 +1,14 @@
13280+#ifndef _VX_PERCPU_H 11906+#ifndef _VSERVER_PERCPU_H
13281+#define _VX_PERCPU_H 11907+#define _VSERVER_PERCPU_H
13282+ 11908+
13283+#include "cvirt_def.h" 11909+#include "cvirt_def.h"
13284+#include "sched_def.h" 11910+#include "sched_def.h"
@@ -13290,10 +11916,10 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/percpu.h linux-3.4.57-v
13290+ 11916+
13291+#define PERCPU_PERCTX (sizeof(struct _vx_percpu)) 11917+#define PERCPU_PERCTX (sizeof(struct _vx_percpu))
13292+ 11918+
13293+#endif /* _VX_PERCPU_H */ 11919+#endif /* _VSERVER_PERCPU_H */
13294diff -NurpP --minimal linux-3.4.57/include/linux/vserver/pid.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/pid.h 11920diff -NurpP --minimal linux-3.10.17/include/linux/vserver/pid.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/pid.h
13295--- linux-3.4.57/include/linux/vserver/pid.h 1970-01-01 00:00:00.000000000 +0000 11921--- linux-3.10.17/include/linux/vserver/pid.h 1970-01-01 00:00:00.000000000 +0000
13296+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/pid.h 2012-05-21 16:15:05.000000000 +0000 11922+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/pid.h 2013-08-22 20:30:00.000000000 +0000
13297@@ -0,0 +1,51 @@ 11923@@ -0,0 +1,51 @@
13298+#ifndef _VSERVER_PID_H 11924+#ifndef _VSERVER_PID_H
13299+#define _VSERVER_PID_H 11925+#define _VSERVER_PID_H
@@ -13346,12 +11972,12 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/pid.h linux-3.4.57-vs2.
13346+} 11972+}
13347+ 11973+
13348+#endif 11974+#endif
13349diff -NurpP --minimal linux-3.4.57/include/linux/vserver/sched.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/sched.h 11975diff -NurpP --minimal linux-3.10.17/include/linux/vserver/sched.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/sched.h
13350--- linux-3.4.57/include/linux/vserver/sched.h 1970-01-01 00:00:00.000000000 +0000 11976--- linux-3.10.17/include/linux/vserver/sched.h 1970-01-01 00:00:00.000000000 +0000
13351+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/sched.h 2012-05-21 16:15:05.000000000 +0000 11977+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/sched.h 2013-08-22 20:30:00.000000000 +0000
13352@@ -0,0 +1,23 @@ 11978@@ -0,0 +1,23 @@
13353+#ifndef _VX_SCHED_H 11979+#ifndef _VSERVER_SCHED_H
13354+#define _VX_SCHED_H 11980+#define _VSERVER_SCHED_H
13355+ 11981+
13356+ 11982+
13357+#ifdef __KERNEL__ 11983+#ifdef __KERNEL__
@@ -13370,40 +11996,30 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/sched.h linux-3.4.57-vs
13370+ struct _vx_sched_pc *sched_pc); 11996+ struct _vx_sched_pc *sched_pc);
13371+ 11997+
13372+#endif /* __KERNEL__ */ 11998+#endif /* __KERNEL__ */
13373+#else /* _VX_SCHED_H */ 11999+#else /* _VSERVER_SCHED_H */
13374+#warning duplicate inclusion 12000+#warning duplicate inclusion
13375+#endif /* _VX_SCHED_H */ 12001+#endif /* _VSERVER_SCHED_H */
13376diff -NurpP --minimal linux-3.4.57/include/linux/vserver/sched_cmd.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/sched_cmd.h 12002diff -NurpP --minimal linux-3.10.17/include/linux/vserver/sched_cmd.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/sched_cmd.h
13377--- linux-3.4.57/include/linux/vserver/sched_cmd.h 1970-01-01 00:00:00.000000000 +0000 12003--- linux-3.10.17/include/linux/vserver/sched_cmd.h 1970-01-01 00:00:00.000000000 +0000
13378+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/sched_cmd.h 2012-05-21 16:15:05.000000000 +0000 12004+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/sched_cmd.h 2013-08-22 20:30:00.000000000 +0000
13379@@ -0,0 +1,21 @@ 12005@@ -0,0 +1,11 @@
13380+#ifndef _VX_SCHED_CMD_H 12006+#ifndef _VSERVER_SCHED_CMD_H
13381+#define _VX_SCHED_CMD_H 12007+#define _VSERVER_SCHED_CMD_H
13382+ 12008+
13383+ 12009+
13384+struct vcmd_prio_bias {
13385+ int32_t cpu_id;
13386+ int32_t prio_bias;
13387+};
13388+
13389+#define VCMD_set_prio_bias VC_CMD(SCHED, 4, 0)
13390+#define VCMD_get_prio_bias VC_CMD(SCHED, 5, 0)
13391+
13392+#ifdef __KERNEL__
13393+
13394+#include <linux/compiler.h> 12010+#include <linux/compiler.h>
12011+#include <uapi/vserver/sched_cmd.h>
13395+ 12012+
13396+extern int vc_set_prio_bias(struct vx_info *, void __user *); 12013+extern int vc_set_prio_bias(struct vx_info *, void __user *);
13397+extern int vc_get_prio_bias(struct vx_info *, void __user *); 12014+extern int vc_get_prio_bias(struct vx_info *, void __user *);
13398+ 12015+
13399+#endif /* __KERNEL__ */ 12016+#endif /* _VSERVER_SCHED_CMD_H */
13400+#endif /* _VX_SCHED_CMD_H */ 12017diff -NurpP --minimal linux-3.10.17/include/linux/vserver/sched_def.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/sched_def.h
13401diff -NurpP --minimal linux-3.4.57/include/linux/vserver/sched_def.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/sched_def.h 12018--- linux-3.10.17/include/linux/vserver/sched_def.h 1970-01-01 00:00:00.000000000 +0000
13402--- linux-3.4.57/include/linux/vserver/sched_def.h 1970-01-01 00:00:00.000000000 +0000 12019+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/sched_def.h 2013-08-22 20:30:00.000000000 +0000
13403+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/sched_def.h 2012-05-21 16:15:05.000000000 +0000
13404@@ -0,0 +1,38 @@ 12020@@ -0,0 +1,38 @@
13405+#ifndef _VX_SCHED_DEF_H 12021+#ifndef _VSERVER_SCHED_DEF_H
13406+#define _VX_SCHED_DEF_H 12022+#define _VSERVER_SCHED_DEF_H
13407+ 12023+
13408+#include <linux/spinlock.h> 12024+#include <linux/spinlock.h>
13409+#include <linux/jiffies.h> 12025+#include <linux/jiffies.h>
@@ -13439,13 +12055,13 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/sched_def.h linux-3.4.5
13439+ 12055+
13440+#endif 12056+#endif
13441+ 12057+
13442+#endif /* _VX_SCHED_DEF_H */ 12058+#endif /* _VSERVER_SCHED_DEF_H */
13443diff -NurpP --minimal linux-3.4.57/include/linux/vserver/signal.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/signal.h 12059diff -NurpP --minimal linux-3.10.17/include/linux/vserver/signal.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/signal.h
13444--- linux-3.4.57/include/linux/vserver/signal.h 1970-01-01 00:00:00.000000000 +0000 12060--- linux-3.10.17/include/linux/vserver/signal.h 1970-01-01 00:00:00.000000000 +0000
13445+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/signal.h 2012-05-21 16:15:05.000000000 +0000 12061+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/signal.h 2013-08-22 20:30:00.000000000 +0000
13446@@ -0,0 +1,14 @@ 12062@@ -0,0 +1,14 @@
13447+#ifndef _VX_SIGNAL_H 12063+#ifndef _VSERVER_SIGNAL_H
13448+#define _VX_SIGNAL_H 12064+#define _VSERVER_SIGNAL_H
13449+ 12065+
13450+ 12066+
13451+#ifdef __KERNEL__ 12067+#ifdef __KERNEL__
@@ -13455,62 +12071,33 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/signal.h linux-3.4.57-v
13455+int vx_info_kill(struct vx_info *, int, int); 12071+int vx_info_kill(struct vx_info *, int, int);
13456+ 12072+
13457+#endif /* __KERNEL__ */ 12073+#endif /* __KERNEL__ */
13458+#else /* _VX_SIGNAL_H */ 12074+#else /* _VSERVER_SIGNAL_H */
13459+#warning duplicate inclusion 12075+#warning duplicate inclusion
13460+#endif /* _VX_SIGNAL_H */ 12076+#endif /* _VSERVER_SIGNAL_H */
13461diff -NurpP --minimal linux-3.4.57/include/linux/vserver/signal_cmd.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/signal_cmd.h 12077diff -NurpP --minimal linux-3.10.17/include/linux/vserver/signal_cmd.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/signal_cmd.h
13462--- linux-3.4.57/include/linux/vserver/signal_cmd.h 1970-01-01 00:00:00.000000000 +0000 12078--- linux-3.10.17/include/linux/vserver/signal_cmd.h 1970-01-01 00:00:00.000000000 +0000
13463+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/signal_cmd.h 2012-05-21 16:15:05.000000000 +0000 12079+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/signal_cmd.h 2013-08-22 20:30:00.000000000 +0000
13464@@ -0,0 +1,43 @@ 12080@@ -0,0 +1,14 @@
13465+#ifndef _VX_SIGNAL_CMD_H 12081+#ifndef _VSERVER_SIGNAL_CMD_H
13466+#define _VX_SIGNAL_CMD_H 12082+#define _VSERVER_SIGNAL_CMD_H
13467+
13468+
13469+/* signalling vserver commands */
13470+
13471+#define VCMD_ctx_kill VC_CMD(PROCTRL, 1, 0)
13472+#define VCMD_wait_exit VC_CMD(EVENT, 99, 0)
13473+
13474+struct vcmd_ctx_kill_v0 {
13475+ int32_t pid;
13476+ int32_t sig;
13477+};
13478+ 12083+
13479+struct vcmd_wait_exit_v0 { 12084+#include <uapi/vserver/signal_cmd.h>
13480+ int32_t reboot_cmd;
13481+ int32_t exit_code;
13482+};
13483+ 12085+
13484+#ifdef __KERNEL__
13485+ 12086+
13486+extern int vc_ctx_kill(struct vx_info *, void __user *); 12087+extern int vc_ctx_kill(struct vx_info *, void __user *);
13487+extern int vc_wait_exit(struct vx_info *, void __user *); 12088+extern int vc_wait_exit(struct vx_info *, void __user *);
13488+ 12089+
13489+#endif /* __KERNEL__ */
13490+
13491+/* process alteration commands */
13492+
13493+#define VCMD_get_pflags VC_CMD(PROCALT, 5, 0)
13494+#define VCMD_set_pflags VC_CMD(PROCALT, 6, 0)
13495+
13496+struct vcmd_pflags_v0 {
13497+ uint32_t flagword;
13498+ uint32_t mask;
13499+};
13500+
13501+#ifdef __KERNEL__
13502+ 12090+
13503+extern int vc_get_pflags(uint32_t pid, void __user *); 12091+extern int vc_get_pflags(uint32_t pid, void __user *);
13504+extern int vc_set_pflags(uint32_t pid, void __user *); 12092+extern int vc_set_pflags(uint32_t pid, void __user *);
13505+ 12093+
13506+#endif /* __KERNEL__ */ 12094+#endif /* _VSERVER_SIGNAL_CMD_H */
13507+#endif /* _VX_SIGNAL_CMD_H */ 12095diff -NurpP --minimal linux-3.10.17/include/linux/vserver/space.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/space.h
13508diff -NurpP --minimal linux-3.4.57/include/linux/vserver/space.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/space.h 12096--- linux-3.10.17/include/linux/vserver/space.h 1970-01-01 00:00:00.000000000 +0000
13509--- linux-3.4.57/include/linux/vserver/space.h 1970-01-01 00:00:00.000000000 +0000 12097+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/space.h 2013-08-22 20:30:00.000000000 +0000
13510+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/space.h 2012-05-21 16:15:05.000000000 +0000
13511@@ -0,0 +1,12 @@ 12098@@ -0,0 +1,12 @@
13512+#ifndef _VX_SPACE_H 12099+#ifndef _VSERVER_SPACE_H
13513+#define _VX_SPACE_H 12100+#define _VSERVER_SPACE_H
13514+ 12101+
13515+#include <linux/types.h> 12102+#include <linux/types.h>
13516+ 12103+
@@ -13518,42 +12105,18 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/space.h linux-3.4.57-vs
13518+ 12105+
13519+int vx_set_space(struct vx_info *vxi, unsigned long mask, unsigned index); 12106+int vx_set_space(struct vx_info *vxi, unsigned long mask, unsigned index);
13520+ 12107+
13521+#else /* _VX_SPACE_H */ 12108+#else /* _VSERVER_SPACE_H */
13522+#warning duplicate inclusion 12109+#warning duplicate inclusion
13523+#endif /* _VX_SPACE_H */ 12110+#endif /* _VSERVER_SPACE_H */
13524diff -NurpP --minimal linux-3.4.57/include/linux/vserver/space_cmd.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/space_cmd.h 12111diff -NurpP --minimal linux-3.10.17/include/linux/vserver/space_cmd.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/space_cmd.h
13525--- linux-3.4.57/include/linux/vserver/space_cmd.h 1970-01-01 00:00:00.000000000 +0000 12112--- linux-3.10.17/include/linux/vserver/space_cmd.h 1970-01-01 00:00:00.000000000 +0000
13526+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/space_cmd.h 2012-05-21 16:15:05.000000000 +0000 12113+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/space_cmd.h 2013-08-22 20:30:00.000000000 +0000
13527@@ -0,0 +1,38 @@ 12114@@ -0,0 +1,13 @@
13528+#ifndef _VX_SPACE_CMD_H 12115+#ifndef _VSERVER_SPACE_CMD_H
13529+#define _VX_SPACE_CMD_H 12116+#define _VSERVER_SPACE_CMD_H
13530+
13531+
13532+#define VCMD_enter_space_v0 VC_CMD(PROCALT, 1, 0)
13533+#define VCMD_enter_space_v1 VC_CMD(PROCALT, 1, 1)
13534+#define VCMD_enter_space VC_CMD(PROCALT, 1, 2)
13535+ 12117+
13536+#define VCMD_set_space_v0 VC_CMD(PROCALT, 3, 0) 12118+#include <uapi/vserver/space_cmd.h>
13537+#define VCMD_set_space_v1 VC_CMD(PROCALT, 3, 1)
13538+#define VCMD_set_space VC_CMD(PROCALT, 3, 2)
13539+ 12119+
13540+#define VCMD_get_space_mask_v0 VC_CMD(PROCALT, 4, 0)
13541+
13542+#define VCMD_get_space_mask VC_CMD(VSPACE, 0, 1)
13543+#define VCMD_get_space_default VC_CMD(VSPACE, 1, 0)
13544+
13545+
13546+struct vcmd_space_mask_v1 {
13547+ uint64_t mask;
13548+};
13549+
13550+struct vcmd_space_mask_v2 {
13551+ uint64_t mask;
13552+ uint32_t index;
13553+};
13554+
13555+
13556+#ifdef __KERNEL__
13557+ 12120+
13558+extern int vc_enter_space_v1(struct vx_info *, void __user *); 12121+extern int vc_enter_space_v1(struct vx_info *, void __user *);
13559+extern int vc_set_space_v1(struct vx_info *, void __user *); 12122+extern int vc_set_space_v1(struct vx_info *, void __user *);
@@ -13561,118 +12124,28 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/space_cmd.h linux-3.4.5
13561+extern int vc_set_space(struct vx_info *, void __user *); 12124+extern int vc_set_space(struct vx_info *, void __user *);
13562+extern int vc_get_space_mask(void __user *, int); 12125+extern int vc_get_space_mask(void __user *, int);
13563+ 12126+
13564+#endif /* __KERNEL__ */ 12127+#endif /* _VSERVER_SPACE_CMD_H */
13565+#endif /* _VX_SPACE_CMD_H */ 12128diff -NurpP --minimal linux-3.10.17/include/linux/vserver/switch.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/switch.h
13566diff -NurpP --minimal linux-3.4.57/include/linux/vserver/switch.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/switch.h 12129--- linux-3.10.17/include/linux/vserver/switch.h 1970-01-01 00:00:00.000000000 +0000
13567--- linux-3.4.57/include/linux/vserver/switch.h 1970-01-01 00:00:00.000000000 +0000 12130+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/switch.h 2013-08-22 20:30:00.000000000 +0000
13568+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/switch.h 2012-05-21 16:15:05.000000000 +0000 12131@@ -0,0 +1,8 @@
13569@@ -0,0 +1,98 @@ 12132+#ifndef _VSERVER_SWITCH_H
13570+#ifndef _VX_SWITCH_H 12133+#define _VSERVER_SWITCH_H
13571+#define _VX_SWITCH_H
13572+
13573+#include <linux/types.h>
13574+
13575+
13576+#define VC_CATEGORY(c) (((c) >> 24) & 0x3F)
13577+#define VC_COMMAND(c) (((c) >> 16) & 0xFF)
13578+#define VC_VERSION(c) ((c) & 0xFFF)
13579+
13580+#define VC_CMD(c, i, v) ((((VC_CAT_ ## c) & 0x3F) << 24) \
13581+ | (((i) & 0xFF) << 16) | ((v) & 0xFFF))
13582+
13583+/*
13584+
13585+ Syscall Matrix V2.8
13586+
13587+ |VERSION|CREATE |MODIFY |MIGRATE|CONTROL|EXPERIM| |SPECIAL|SPECIAL|
13588+ |STATS |DESTROY|ALTER |CHANGE |LIMIT |TEST | | | |
13589+ |INFO |SETUP | |MOVE | | | | | |
13590+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13591+ SYSTEM |VERSION|VSETUP |VHOST | | | | |DEVICE | |
13592+ HOST | 00| 01| 02| 03| 04| 05| | 06| 07|
13593+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13594+ CPU | |VPROC |PROCALT|PROCMIG|PROCTRL| | |SCHED. | |
13595+ PROCESS| 08| 09| 10| 11| 12| 13| | 14| 15|
13596+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13597+ MEMORY | | | | |MEMCTRL| | |SWAP | |
13598+ | 16| 17| 18| 19| 20| 21| | 22| 23|
13599+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13600+ NETWORK| |VNET |NETALT |NETMIG |NETCTL | | |SERIAL | |
13601+ | 24| 25| 26| 27| 28| 29| | 30| 31|
13602+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13603+ DISK | | | |TAGMIG |DLIMIT | | |INODE | |
13604+ VFS | 32| 33| 34| 35| 36| 37| | 38| 39|
13605+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13606+ OTHER |VSTAT | | | | | | |VINFO | |
13607+ | 40| 41| 42| 43| 44| 45| | 46| 47|
13608+ =======+=======+=======+=======+=======+=======+=======+ +=======+=======+
13609+ SPECIAL|EVENT | | | |FLAGS | | |VSPACE | |
13610+ | 48| 49| 50| 51| 52| 53| | 54| 55|
13611+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13612+ SPECIAL|DEBUG | | | |RLIMIT |SYSCALL| | |COMPAT |
13613+ | 56| 57| 58| 59| 60|TEST 61| | 62| 63|
13614+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13615+
13616+*/
13617+
13618+#define VC_CAT_VERSION 0
13619+
13620+#define VC_CAT_VSETUP 1
13621+#define VC_CAT_VHOST 2
13622+
13623+#define VC_CAT_DEVICE 6
13624+
13625+#define VC_CAT_VPROC 9
13626+#define VC_CAT_PROCALT 10
13627+#define VC_CAT_PROCMIG 11
13628+#define VC_CAT_PROCTRL 12
13629+
13630+#define VC_CAT_SCHED 14
13631+#define VC_CAT_MEMCTRL 20
13632+
13633+#define VC_CAT_VNET 25
13634+#define VC_CAT_NETALT 26
13635+#define VC_CAT_NETMIG 27
13636+#define VC_CAT_NETCTRL 28
13637+
13638+#define VC_CAT_TAGMIG 35
13639+#define VC_CAT_DLIMIT 36
13640+#define VC_CAT_INODE 38
13641+
13642+#define VC_CAT_VSTAT 40
13643+#define VC_CAT_VINFO 46
13644+#define VC_CAT_EVENT 48
13645+
13646+#define VC_CAT_FLAGS 52
13647+#define VC_CAT_VSPACE 54
13648+#define VC_CAT_DEBUG 56
13649+#define VC_CAT_RLIMIT 60
13650+
13651+#define VC_CAT_SYSTEST 61
13652+#define VC_CAT_COMPAT 63
13653+
13654+/* query version */
13655+
13656+#define VCMD_get_version VC_CMD(VERSION, 0, 0)
13657+#define VCMD_get_vci VC_CMD(VERSION, 1, 0)
13658+
13659+ 12134+
13660+#ifdef __KERNEL__
13661+ 12135+
13662+#include <linux/errno.h> 12136+#include <linux/errno.h>
12137+#include <uapi/vserver/switch.h>
13663+ 12138+
13664+#endif /* __KERNEL__ */ 12139+#endif /* _VSERVER_SWITCH_H */
13665+ 12140diff -NurpP --minimal linux-3.10.17/include/linux/vserver/tag.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/tag.h
13666+#endif /* _VX_SWITCH_H */ 12141--- linux-3.10.17/include/linux/vserver/tag.h 1970-01-01 00:00:00.000000000 +0000
13667+ 12142+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/tag.h 2013-08-22 20:30:00.000000000 +0000
13668diff -NurpP --minimal linux-3.4.57/include/linux/vserver/tag.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/tag.h 12143@@ -0,0 +1,160 @@
13669--- linux-3.4.57/include/linux/vserver/tag.h 1970-01-01 00:00:00.000000000 +0000
13670+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/tag.h 2012-05-21 16:15:05.000000000 +0000
13671@@ -0,0 +1,143 @@
13672+#ifndef _DX_TAG_H 12144+#ifndef _DX_TAG_H
13673+#define _DX_TAG_H 12145+#define _DX_TAG_H
13674+ 12146+
13675+#include <linux/types.h> 12147+#include <linux/types.h>
12148+#include <linux/uidgid.h>
13676+ 12149+
13677+ 12150+
13678+#define DX_TAG(in) (IS_TAGGED(in)) 12151+#define DX_TAG(in) (IS_TAGGED(in))
@@ -13771,11 +12244,27 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/tag.h linux-3.4.57-vs2.
13771+#define TAGINO_TAG(cond, tag) ((cond) ? (tag) : 0) 12244+#define TAGINO_TAG(cond, tag) ((cond) ? (tag) : 0)
13772+#endif 12245+#endif
13773+ 12246+
12247+#define TAGINO_KUID(cond, kuid, ktag) \
12248+ KUIDT_INIT(TAGINO_UID(cond, __kuid_val(kuid), __ktag_val(ktag)))
12249+#define TAGINO_KGID(cond, kgid, ktag) \
12250+ KGIDT_INIT(TAGINO_GID(cond, __kgid_val(kgid), __ktag_val(ktag)))
12251+#define TAGINO_KTAG(cond, ktag) \
12252+ KTAGT_INIT(TAGINO_TAG(cond, __ktag_val(ktag)))
12253+
12254+
13774+#define INOTAG_UID(cond, uid, gid) \ 12255+#define INOTAG_UID(cond, uid, gid) \
13775+ ((cond) ? ((uid) & MAX_UID) : (uid)) 12256+ ((cond) ? ((uid) & MAX_UID) : (uid))
13776+#define INOTAG_GID(cond, uid, gid) \ 12257+#define INOTAG_GID(cond, uid, gid) \
13777+ ((cond) ? ((gid) & MAX_GID) : (gid)) 12258+ ((cond) ? ((gid) & MAX_GID) : (gid))
13778+ 12259+
12260+#define INOTAG_KUID(cond, kuid, kgid) \
12261+ KUIDT_INIT(INOTAG_UID(cond, __kuid_val(kuid), __kgid_val(kgid)))
12262+#define INOTAG_KGID(cond, kuid, kgid) \
12263+ KGIDT_INIT(INOTAG_GID(cond, __kuid_val(kuid), __kgid_val(kgid)))
12264+#define INOTAG_KTAG(cond, kuid, kgid, ktag) \
12265+ KTAGT_INIT(INOTAG_TAG(cond, \
12266+ __kuid_val(kuid), __kgid_val(kgid), __ktag_val(ktag)))
12267+
13779+ 12268+
13780+static inline uid_t dx_map_uid(uid_t uid) 12269+static inline uid_t dx_map_uid(uid_t uid)
13781+{ 12270+{
@@ -13798,7 +12287,7 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/tag.h linux-3.4.57-vs2.
13798+ 12287+
13799+#define dx_notagcheck(sb) ((sb) && ((sb)->s_flags & MS_NOTAGCHECK)) 12288+#define dx_notagcheck(sb) ((sb) && ((sb)->s_flags & MS_NOTAGCHECK))
13800+ 12289+
13801+int dx_parse_tag(char *string, tag_t *tag, int remove, int *mnt_flags, 12290+int dx_parse_tag(char *string, vtag_t *tag, int remove, int *mnt_flags,
13802+ unsigned long *flags); 12291+ unsigned long *flags);
13803+ 12292+
13804+#ifdef CONFIG_PROPAGATE 12293+#ifdef CONFIG_PROPAGATE
@@ -13812,37 +12301,25 @@ diff -NurpP --minimal linux-3.4.57/include/linux/vserver/tag.h linux-3.4.57-vs2.
13812+#endif 12301+#endif
13813+ 12302+
13814+#endif /* _DX_TAG_H */ 12303+#endif /* _DX_TAG_H */
13815diff -NurpP --minimal linux-3.4.57/include/linux/vserver/tag_cmd.h linux-3.4.57-vs2.3.3.9/include/linux/vserver/tag_cmd.h 12304diff -NurpP --minimal linux-3.10.17/include/linux/vserver/tag_cmd.h linux-3.10.17-vs2.3.6.6/include/linux/vserver/tag_cmd.h
13816--- linux-3.4.57/include/linux/vserver/tag_cmd.h 1970-01-01 00:00:00.000000000 +0000 12305--- linux-3.10.17/include/linux/vserver/tag_cmd.h 1970-01-01 00:00:00.000000000 +0000
13817+++ linux-3.4.57-vs2.3.3.9/include/linux/vserver/tag_cmd.h 2012-05-21 16:15:05.000000000 +0000 12306+++ linux-3.10.17-vs2.3.6.6/include/linux/vserver/tag_cmd.h 2013-08-22 20:30:00.000000000 +0000
13818@@ -0,0 +1,22 @@ 12307@@ -0,0 +1,10 @@
13819+#ifndef _VX_TAG_CMD_H 12308+#ifndef _VSERVER_TAG_CMD_H
13820+#define _VX_TAG_CMD_H 12309+#define _VSERVER_TAG_CMD_H
13821+
13822+
13823+/* vinfo commands */
13824+ 12310+
13825+#define VCMD_task_tag VC_CMD(VINFO, 3, 0) 12311+#include <uapi/vserver/tag_cmd.h>
13826+ 12312+
13827+#ifdef __KERNEL__
13828+extern int vc_task_tag(uint32_t); 12313+extern int vc_task_tag(uint32_t);
13829+ 12314+
13830+#endif /* __KERNEL__ */
13831+
13832+/* context commands */
13833+
13834+#define VCMD_tag_migrate VC_CMD(TAGMIG, 1, 0)
13835+
13836+#ifdef __KERNEL__
13837+extern int vc_tag_migrate(uint32_t); 12315+extern int vc_tag_migrate(uint32_t);
13838+ 12316+
13839+#endif /* __KERNEL__ */ 12317+#endif /* _VSERVER_TAG_CMD_H */
13840+#endif /* _VX_TAG_CMD_H */ 12318diff -NurpP --minimal linux-3.10.17/include/net/addrconf.h linux-3.10.17-vs2.3.6.6/include/net/addrconf.h
13841diff -NurpP --minimal linux-3.4.57/include/net/addrconf.h linux-3.4.57-vs2.3.3.9/include/net/addrconf.h 12319--- linux-3.10.17/include/net/addrconf.h 2013-10-25 15:17:44.000000000 +0000
13842--- linux-3.4.57/include/net/addrconf.h 2013-08-13 14:13:36.000000000 +0000 12320+++ linux-3.10.17-vs2.3.6.6/include/net/addrconf.h 2013-10-26 18:03:17.000000000 +0000
13843+++ linux-3.4.57-vs2.3.3.9/include/net/addrconf.h 2013-08-13 17:08:10.000000000 +0000 12321@@ -89,7 +89,8 @@ extern int ipv6_dev_get_saddr(struct n
13844@@ -80,7 +80,8 @@ extern int ipv6_dev_get_saddr(struct n 12322 const struct net_device *dev,
13845 struct net_device *dev,
13846 const struct in6_addr *daddr, 12323 const struct in6_addr *daddr,
13847 unsigned int srcprefs, 12324 unsigned int srcprefs,
13848- struct in6_addr *saddr); 12325- struct in6_addr *saddr);
@@ -13851,9 +12328,9 @@ diff -NurpP --minimal linux-3.4.57/include/net/addrconf.h linux-3.4.57-vs2.3.3.9
13851 extern int __ipv6_get_lladdr(struct inet6_dev *idev, 12328 extern int __ipv6_get_lladdr(struct inet6_dev *idev,
13852 struct in6_addr *addr, 12329 struct in6_addr *addr,
13853 unsigned char banned_flags); 12330 unsigned char banned_flags);
13854diff -NurpP --minimal linux-3.4.57/include/net/af_unix.h linux-3.4.57-vs2.3.3.9/include/net/af_unix.h 12331diff -NurpP --minimal linux-3.10.17/include/net/af_unix.h linux-3.10.17-vs2.3.6.6/include/net/af_unix.h
13855--- linux-3.4.57/include/net/af_unix.h 2012-05-21 16:07:33.000000000 +0000 12332--- linux-3.10.17/include/net/af_unix.h 2013-07-14 17:01:33.000000000 +0000
13856+++ linux-3.4.57-vs2.3.3.9/include/net/af_unix.h 2012-05-21 16:15:05.000000000 +0000 12333+++ linux-3.10.17-vs2.3.6.6/include/net/af_unix.h 2013-08-22 20:30:00.000000000 +0000
13857@@ -4,6 +4,7 @@ 12334@@ -4,6 +4,7 @@
13858 #include <linux/socket.h> 12335 #include <linux/socket.h>
13859 #include <linux/un.h> 12336 #include <linux/un.h>
@@ -13862,24 +12339,24 @@ diff -NurpP --minimal linux-3.4.57/include/net/af_unix.h linux-3.4.57-vs2.3.3.9/
13862 #include <net/sock.h> 12339 #include <net/sock.h>
13863 12340
13864 extern void unix_inflight(struct file *fp); 12341 extern void unix_inflight(struct file *fp);
13865diff -NurpP --minimal linux-3.4.57/include/net/inet_timewait_sock.h linux-3.4.57-vs2.3.3.9/include/net/inet_timewait_sock.h 12342diff -NurpP --minimal linux-3.10.17/include/net/inet_timewait_sock.h linux-3.10.17-vs2.3.6.6/include/net/inet_timewait_sock.h
13866--- linux-3.4.57/include/net/inet_timewait_sock.h 2012-03-19 18:47:29.000000000 +0000 12343--- linux-3.10.17/include/net/inet_timewait_sock.h 2013-05-31 13:45:28.000000000 +0000
13867+++ linux-3.4.57-vs2.3.3.9/include/net/inet_timewait_sock.h 2012-05-21 16:15:05.000000000 +0000 12344+++ linux-3.10.17-vs2.3.6.6/include/net/inet_timewait_sock.h 2013-08-22 20:30:00.000000000 +0000
13868@@ -112,6 +112,10 @@ struct inet_timewait_sock { 12345@@ -116,6 +116,10 @@ struct inet_timewait_sock {
13869 #define tw_net __tw_common.skc_net 12346 #define tw_dport __tw_common.skc_dport
13870 #define tw_daddr __tw_common.skc_daddr 12347 #define tw_num __tw_common.skc_num
13871 #define tw_rcv_saddr __tw_common.skc_rcv_saddr 12348 #define tw_portpair __tw_common.skc_portpair
13872+#define tw_xid __tw_common.skc_xid 12349+#define tw_xid __tw_common.skc_xid
13873+#define tw_vx_info __tw_common.skc_vx_info 12350+#define tw_vx_info __tw_common.skc_vx_info
13874+#define tw_nid __tw_common.skc_nid 12351+#define tw_nid __tw_common.skc_nid
13875+#define tw_nx_info __tw_common.skc_nx_info 12352+#define tw_nx_info __tw_common.skc_nx_info
12353
13876 int tw_timeout; 12354 int tw_timeout;
13877 volatile unsigned char tw_substate; 12355 volatile unsigned char tw_substate;
13878 unsigned char tw_rcv_wscale; 12356diff -NurpP --minimal linux-3.10.17/include/net/ip6_route.h linux-3.10.17-vs2.3.6.6/include/net/ip6_route.h
13879diff -NurpP --minimal linux-3.4.57/include/net/ip6_route.h linux-3.4.57-vs2.3.3.9/include/net/ip6_route.h 12357--- linux-3.10.17/include/net/ip6_route.h 2013-05-31 13:45:28.000000000 +0000
13880--- linux-3.4.57/include/net/ip6_route.h 2012-03-19 18:47:29.000000000 +0000 12358+++ linux-3.10.17-vs2.3.6.6/include/net/ip6_route.h 2013-08-22 20:30:00.000000000 +0000
13881+++ linux-3.4.57-vs2.3.3.9/include/net/ip6_route.h 2012-05-21 16:15:05.000000000 +0000 12359@@ -95,7 +95,8 @@ extern int ip6_route_get_saddr(struct
13882@@ -88,7 +88,8 @@ extern int ip6_route_get_saddr(struct
13883 struct rt6_info *rt, 12360 struct rt6_info *rt,
13884 const struct in6_addr *daddr, 12361 const struct in6_addr *daddr,
13885 unsigned int prefs, 12362 unsigned int prefs,
@@ -13889,11 +12366,11 @@ diff -NurpP --minimal linux-3.4.57/include/net/ip6_route.h linux-3.4.57-vs2.3.3.
13889 12366
13890 extern struct rt6_info *rt6_lookup(struct net *net, 12367 extern struct rt6_info *rt6_lookup(struct net *net,
13891 const struct in6_addr *daddr, 12368 const struct in6_addr *daddr,
13892diff -NurpP --minimal linux-3.4.57/include/net/route.h linux-3.4.57-vs2.3.3.9/include/net/route.h 12369diff -NurpP --minimal linux-3.10.17/include/net/route.h linux-3.10.17-vs2.3.6.6/include/net/route.h
13893--- linux-3.4.57/include/net/route.h 2012-03-19 18:47:29.000000000 +0000 12370--- linux-3.10.17/include/net/route.h 2013-02-19 13:58:52.000000000 +0000
13894+++ linux-3.4.57-vs2.3.3.9/include/net/route.h 2012-05-21 16:15:05.000000000 +0000 12371+++ linux-3.10.17-vs2.3.6.6/include/net/route.h 2013-08-22 20:30:00.000000000 +0000
13895@@ -202,6 +202,9 @@ static inline void ip_rt_put(struct rtab 12372@@ -207,6 +207,9 @@ static inline void ip_rt_put(struct rtab
13896 dst_release(&rt->dst); 12373 dst_release(&rt->dst);
13897 } 12374 }
13898 12375
13899+#include <linux/vs_base.h> 12376+#include <linux/vs_base.h>
@@ -13902,7 +12379,7 @@ diff -NurpP --minimal linux-3.4.57/include/net/route.h linux-3.4.57-vs2.3.3.9/in
13902 #define IPTOS_RT_MASK (IPTOS_TOS_MASK & ~3) 12379 #define IPTOS_RT_MASK (IPTOS_TOS_MASK & ~3)
13903 12380
13904 extern const __u8 ip_tos2prio[16]; 12381 extern const __u8 ip_tos2prio[16];
13905@@ -253,6 +256,9 @@ static inline void ip_route_connect_init 12382@@ -256,6 +259,9 @@ static inline void ip_route_connect_init
13906 protocol, flow_flags, dst, src, dport, sport); 12383 protocol, flow_flags, dst, src, dport, sport);
13907 } 12384 }
13908 12385
@@ -13912,7 +12389,7 @@ diff -NurpP --minimal linux-3.4.57/include/net/route.h linux-3.4.57-vs2.3.3.9/in
13912 static inline struct rtable *ip_route_connect(struct flowi4 *fl4, 12389 static inline struct rtable *ip_route_connect(struct flowi4 *fl4,
13913 __be32 dst, __be32 src, u32 tos, 12390 __be32 dst, __be32 src, u32 tos,
13914 int oif, u8 protocol, 12391 int oif, u8 protocol,
13915@@ -261,11 +267,25 @@ static inline struct rtable *ip_route_co 12392@@ -264,11 +270,25 @@ static inline struct rtable *ip_route_co
13916 { 12393 {
13917 struct net *net = sock_net(sk); 12394 struct net *net = sock_net(sk);
13918 struct rtable *rt; 12395 struct rtable *rt;
@@ -13939,21 +12416,21 @@ diff -NurpP --minimal linux-3.4.57/include/net/route.h linux-3.4.57-vs2.3.3.9/in
13939 rt = __ip_route_output_key(net, fl4); 12416 rt = __ip_route_output_key(net, fl4);
13940 if (IS_ERR(rt)) 12417 if (IS_ERR(rt))
13941 return rt; 12418 return rt;
13942diff -NurpP --minimal linux-3.4.57/include/net/sock.h linux-3.4.57-vs2.3.3.9/include/net/sock.h 12419diff -NurpP --minimal linux-3.10.17/include/net/sock.h linux-3.10.17-vs2.3.6.6/include/net/sock.h
13943--- linux-3.4.57/include/net/sock.h 2013-08-13 14:13:36.000000000 +0000 12420--- linux-3.10.17/include/net/sock.h 2013-07-14 17:01:33.000000000 +0000
13944+++ linux-3.4.57-vs2.3.3.9/include/net/sock.h 2013-07-14 13:38:35.000000000 +0000 12421+++ linux-3.10.17-vs2.3.6.6/include/net/sock.h 2013-08-22 20:30:00.000000000 +0000
13945@@ -170,6 +170,10 @@ struct sock_common { 12422@@ -191,6 +191,10 @@ struct sock_common {
13946 #ifdef CONFIG_NET_NS 12423 #ifdef CONFIG_NET_NS
13947 struct net *skc_net; 12424 struct net *skc_net;
13948 #endif 12425 #endif
13949+ xid_t skc_xid; 12426+ vxid_t skc_xid;
13950+ struct vx_info *skc_vx_info; 12427+ struct vx_info *skc_vx_info;
13951+ nid_t skc_nid; 12428+ vnid_t skc_nid;
13952+ struct nx_info *skc_nx_info; 12429+ struct nx_info *skc_nx_info;
13953 /* 12430 /*
13954 * fields between dontcopy_begin/dontcopy_end 12431 * fields between dontcopy_begin/dontcopy_end
13955 * are not copied in sock_copy() 12432 * are not copied in sock_copy()
13956@@ -282,6 +286,10 @@ struct sock { 12433@@ -304,6 +308,10 @@ struct sock {
13957 #define sk_bind_node __sk_common.skc_bind_node 12434 #define sk_bind_node __sk_common.skc_bind_node
13958 #define sk_prot __sk_common.skc_prot 12435 #define sk_prot __sk_common.skc_prot
13959 #define sk_net __sk_common.skc_net 12436 #define sk_net __sk_common.skc_net
@@ -13964,10 +12441,1200 @@ diff -NurpP --minimal linux-3.4.57/include/net/sock.h linux-3.4.57-vs2.3.3.9/inc
13964 socket_lock_t sk_lock; 12441 socket_lock_t sk_lock;
13965 struct sk_buff_head sk_receive_queue; 12442 struct sk_buff_head sk_receive_queue;
13966 /* 12443 /*
13967diff -NurpP --minimal linux-3.4.57/init/Kconfig linux-3.4.57-vs2.3.3.9/init/Kconfig 12444diff -NurpP --minimal linux-3.10.17/include/uapi/Kbuild linux-3.10.17-vs2.3.6.6/include/uapi/Kbuild
13968--- linux-3.4.57/init/Kconfig 2012-05-21 16:07:33.000000000 +0000 12445--- linux-3.10.17/include/uapi/Kbuild 2012-12-11 03:30:57.000000000 +0000
13969+++ linux-3.4.57-vs2.3.3.9/init/Kconfig 2012-05-21 16:15:05.000000000 +0000 12446+++ linux-3.10.17-vs2.3.6.6/include/uapi/Kbuild 2013-08-22 20:30:00.000000000 +0000
13970@@ -579,6 +579,7 @@ config HAVE_UNSTABLE_SCHED_CLOCK 12447@@ -12,3 +12,4 @@ header-y += video/
12448 header-y += drm/
12449 header-y += xen/
12450 header-y += scsi/
12451+header-y += vserver/
12452diff -NurpP --minimal linux-3.10.17/include/uapi/linux/capability.h linux-3.10.17-vs2.3.6.6/include/uapi/linux/capability.h
12453--- linux-3.10.17/include/uapi/linux/capability.h 2012-12-11 03:30:57.000000000 +0000
12454+++ linux-3.10.17-vs2.3.6.6/include/uapi/linux/capability.h 2013-08-22 20:30:00.000000000 +0000
12455@@ -259,6 +259,7 @@ struct vfs_cap_data {
12456 arbitrary SCSI commands */
12457 /* Allow setting encryption key on loopback filesystem */
12458 /* Allow setting zone reclaim policy */
12459+/* Allow the selection of a security context */
12460
12461 #define CAP_SYS_ADMIN 21
12462
12463@@ -345,7 +346,12 @@ struct vfs_cap_data {
12464
12465 #define CAP_LAST_CAP CAP_BLOCK_SUSPEND
12466
12467-#define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP)
12468+/* Allow context manipulations */
12469+/* Allow changing context info on files */
12470+
12471+#define CAP_CONTEXT 63
12472+
12473+#define cap_valid(x) ((x) >= 0 && ((x) <= CAP_LAST_CAP || (x) == CAP_CONTEXT))
12474
12475 /*
12476 * Bit location of each capability (used by user-space library and kernel)
12477diff -NurpP --minimal linux-3.10.17/include/uapi/linux/fs.h linux-3.10.17-vs2.3.6.6/include/uapi/linux/fs.h
12478--- linux-3.10.17/include/uapi/linux/fs.h 2013-07-14 17:01:34.000000000 +0000
12479+++ linux-3.10.17-vs2.3.6.6/include/uapi/linux/fs.h 2013-08-22 20:30:00.000000000 +0000
12480@@ -86,6 +86,9 @@ struct inodes_stat_t {
12481 #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */
12482 #define MS_I_VERSION (1<<23) /* Update inode I_version field */
12483 #define MS_STRICTATIME (1<<24) /* Always perform atime updates */
12484+#define MS_TAGGED (1<<8) /* use generic inode tagging */
12485+#define MS_NOTAGCHECK (1<<9) /* don't check tags */
12486+#define MS_TAGID (1<<25) /* use specific tag for this mount */
12487
12488 /* These sb flags are internal to the kernel */
12489 #define MS_NOSEC (1<<28)
12490@@ -191,11 +194,14 @@ struct inodes_stat_t {
12491 #define FS_EXTENT_FL 0x00080000 /* Extents */
12492 #define FS_DIRECTIO_FL 0x00100000 /* Use direct i/o */
12493 #define FS_NOCOW_FL 0x00800000 /* Do not cow file */
12494+#define FS_IXUNLINK_FL 0x08000000 /* Immutable invert on unlink */
12495 #define FS_RESERVED_FL 0x80000000 /* reserved for ext2 lib */
12496
12497-#define FS_FL_USER_VISIBLE 0x0003DFFF /* User visible flags */
12498-#define FS_FL_USER_MODIFIABLE 0x000380FF /* User modifiable flags */
12499+#define FS_BARRIER_FL 0x04000000 /* Barrier for chroot() */
12500+#define FS_COW_FL 0x20000000 /* Copy on Write marker */
12501
12502+#define FS_FL_USER_VISIBLE 0x0103DFFF /* User visible flags */
12503+#define FS_FL_USER_MODIFIABLE 0x010380FF /* User modifiable flags */
12504
12505 #define SYNC_FILE_RANGE_WAIT_BEFORE 1
12506 #define SYNC_FILE_RANGE_WRITE 2
12507diff -NurpP --minimal linux-3.10.17/include/uapi/linux/gfs2_ondisk.h linux-3.10.17-vs2.3.6.6/include/uapi/linux/gfs2_ondisk.h
12508--- linux-3.10.17/include/uapi/linux/gfs2_ondisk.h 2012-12-11 03:30:57.000000000 +0000
12509+++ linux-3.10.17-vs2.3.6.6/include/uapi/linux/gfs2_ondisk.h 2013-08-22 20:30:00.000000000 +0000
12510@@ -225,6 +225,9 @@ enum {
12511 gfs2fl_Sync = 8,
12512 gfs2fl_System = 9,
12513 gfs2fl_TopLevel = 10,
12514+ gfs2fl_IXUnlink = 16,
12515+ gfs2fl_Barrier = 17,
12516+ gfs2fl_Cow = 18,
12517 gfs2fl_TruncInProg = 29,
12518 gfs2fl_InheritDirectio = 30,
12519 gfs2fl_InheritJdata = 31,
12520@@ -242,6 +245,9 @@ enum {
12521 #define GFS2_DIF_SYNC 0x00000100
12522 #define GFS2_DIF_SYSTEM 0x00000200 /* New in gfs2 */
12523 #define GFS2_DIF_TOPDIR 0x00000400 /* New in gfs2 */
12524+#define GFS2_DIF_IXUNLINK 0x00010000
12525+#define GFS2_DIF_BARRIER 0x00020000
12526+#define GFS2_DIF_COW 0x00040000
12527 #define GFS2_DIF_TRUNC_IN_PROG 0x20000000 /* New in gfs2 */
12528 #define GFS2_DIF_INHERIT_DIRECTIO 0x40000000 /* only in gfs1 */
12529 #define GFS2_DIF_INHERIT_JDATA 0x80000000
12530diff -NurpP --minimal linux-3.10.17/include/uapi/linux/if_tun.h linux-3.10.17-vs2.3.6.6/include/uapi/linux/if_tun.h
12531--- linux-3.10.17/include/uapi/linux/if_tun.h 2013-02-19 13:58:55.000000000 +0000
12532+++ linux-3.10.17-vs2.3.6.6/include/uapi/linux/if_tun.h 2013-08-22 20:30:00.000000000 +0000
12533@@ -56,6 +56,7 @@
12534 #define TUNGETVNETHDRSZ _IOR('T', 215, int)
12535 #define TUNSETVNETHDRSZ _IOW('T', 216, int)
12536 #define TUNSETQUEUE _IOW('T', 217, int)
12537+#define TUNSETNID _IOW('T', 218, int)
12538
12539 /* TUNSETIFF ifr flags */
12540 #define IFF_TUN 0x0001
12541diff -NurpP --minimal linux-3.10.17/include/uapi/linux/major.h linux-3.10.17-vs2.3.6.6/include/uapi/linux/major.h
12542--- linux-3.10.17/include/uapi/linux/major.h 2012-12-11 03:30:57.000000000 +0000
12543+++ linux-3.10.17-vs2.3.6.6/include/uapi/linux/major.h 2013-08-22 20:30:00.000000000 +0000
12544@@ -15,6 +15,7 @@
12545 #define HD_MAJOR IDE0_MAJOR
12546 #define PTY_SLAVE_MAJOR 3
12547 #define TTY_MAJOR 4
12548+#define VROOT_MAJOR 4
12549 #define TTYAUX_MAJOR 5
12550 #define LP_MAJOR 6
12551 #define VCS_MAJOR 7
12552diff -NurpP --minimal linux-3.10.17/include/uapi/linux/nfs_mount.h linux-3.10.17-vs2.3.6.6/include/uapi/linux/nfs_mount.h
12553--- linux-3.10.17/include/uapi/linux/nfs_mount.h 2012-12-11 03:30:57.000000000 +0000
12554+++ linux-3.10.17-vs2.3.6.6/include/uapi/linux/nfs_mount.h 2013-08-22 20:30:00.000000000 +0000
12555@@ -63,7 +63,8 @@ struct nfs_mount_data {
12556 #define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 */
12557 #define NFS_MOUNT_NORDIRPLUS 0x4000 /* 5 */
12558 #define NFS_MOUNT_UNSHARED 0x8000 /* 5 */
12559-#define NFS_MOUNT_FLAGMASK 0xFFFF
12560+#define NFS_MOUNT_TAGGED 0x10000 /* context tagging */
12561+#define NFS_MOUNT_FLAGMASK 0x1FFFF
12562
12563 /* The following are for internal use only */
12564 #define NFS_MOUNT_LOOKUP_CACHE_NONEG 0x10000
12565diff -NurpP --minimal linux-3.10.17/include/uapi/linux/reboot.h linux-3.10.17-vs2.3.6.6/include/uapi/linux/reboot.h
12566--- linux-3.10.17/include/uapi/linux/reboot.h 2012-12-11 03:30:57.000000000 +0000
12567+++ linux-3.10.17-vs2.3.6.6/include/uapi/linux/reboot.h 2013-08-22 20:30:00.000000000 +0000
12568@@ -33,7 +33,7 @@
12569 #define LINUX_REBOOT_CMD_RESTART2 0xA1B2C3D4
12570 #define LINUX_REBOOT_CMD_SW_SUSPEND 0xD000FCE2
12571 #define LINUX_REBOOT_CMD_KEXEC 0x45584543
12572-
12573+#define LINUX_REBOOT_CMD_OOM 0xDEADBEEF
12574
12575
12576 #endif /* _UAPI_LINUX_REBOOT_H */
12577diff -NurpP --minimal linux-3.10.17/include/uapi/linux/sysctl.h linux-3.10.17-vs2.3.6.6/include/uapi/linux/sysctl.h
12578--- linux-3.10.17/include/uapi/linux/sysctl.h 2012-12-11 03:30:57.000000000 +0000
12579+++ linux-3.10.17-vs2.3.6.6/include/uapi/linux/sysctl.h 2013-08-22 20:30:00.000000000 +0000
12580@@ -60,6 +60,7 @@ enum
12581 CTL_ABI=9, /* Binary emulation */
12582 CTL_CPU=10, /* CPU stuff (speed scaling, etc) */
12583 CTL_ARLAN=254, /* arlan wireless driver */
12584+ CTL_VSERVER=4242, /* Linux-VServer debug */
12585 CTL_S390DBF=5677, /* s390 debug */
12586 CTL_SUNRPC=7249, /* sunrpc debug */
12587 CTL_PM=9899, /* frv power management */
12588@@ -94,6 +95,7 @@ enum
12589
12590 KERN_PANIC=15, /* int: panic timeout */
12591 KERN_REALROOTDEV=16, /* real root device to mount after initrd */
12592+ KERN_VSHELPER=17, /* string: path to vshelper policy agent */
12593
12594 KERN_SPARC_REBOOT=21, /* reboot command on Sparc */
12595 KERN_CTLALTDEL=22, /* int: allow ctl-alt-del to reboot */
12596diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/Kbuild linux-3.10.17-vs2.3.6.6/include/uapi/vserver/Kbuild
12597--- linux-3.10.17/include/uapi/vserver/Kbuild 1970-01-01 00:00:00.000000000 +0000
12598+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/Kbuild 2013-08-22 20:30:00.000000000 +0000
12599@@ -0,0 +1,9 @@
12600+
12601+header-y += context_cmd.h network_cmd.h space_cmd.h \
12602+ cacct_cmd.h cvirt_cmd.h limit_cmd.h dlimit_cmd.h \
12603+ inode_cmd.h tag_cmd.h sched_cmd.h signal_cmd.h \
12604+ debug_cmd.h device_cmd.h
12605+
12606+header-y += switch.h context.h network.h monitor.h \
12607+ limit.h inode.h device.h
12608+
12609diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/cacct_cmd.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/cacct_cmd.h
12610--- linux-3.10.17/include/uapi/vserver/cacct_cmd.h 1970-01-01 00:00:00.000000000 +0000
12611+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/cacct_cmd.h 2013-08-22 20:30:00.000000000 +0000
12612@@ -0,0 +1,15 @@
12613+#ifndef _UAPI_VS_CACCT_CMD_H
12614+#define _UAPI_VS_CACCT_CMD_H
12615+
12616+
12617+/* virtual host info name commands */
12618+
12619+#define VCMD_sock_stat VC_CMD(VSTAT, 5, 0)
12620+
12621+struct vcmd_sock_stat_v0 {
12622+ uint32_t field;
12623+ uint32_t count[3];
12624+ uint64_t total[3];
12625+};
12626+
12627+#endif /* _UAPI_VS_CACCT_CMD_H */
12628diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/context.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/context.h
12629--- linux-3.10.17/include/uapi/vserver/context.h 1970-01-01 00:00:00.000000000 +0000
12630+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/context.h 2013-08-22 20:30:00.000000000 +0000
12631@@ -0,0 +1,81 @@
12632+#ifndef _UAPI_VS_CONTEXT_H
12633+#define _UAPI_VS_CONTEXT_H
12634+
12635+#include <linux/types.h>
12636+#include <linux/capability.h>
12637+
12638+
12639+/* context flags */
12640+
12641+#define VXF_INFO_SCHED 0x00000002
12642+#define VXF_INFO_NPROC 0x00000004
12643+#define VXF_INFO_PRIVATE 0x00000008
12644+
12645+#define VXF_INFO_INIT 0x00000010
12646+#define VXF_INFO_HIDE 0x00000020
12647+#define VXF_INFO_ULIMIT 0x00000040
12648+#define VXF_INFO_NSPACE 0x00000080
12649+
12650+#define VXF_SCHED_HARD 0x00000100
12651+#define VXF_SCHED_PRIO 0x00000200
12652+#define VXF_SCHED_PAUSE 0x00000400
12653+
12654+#define VXF_VIRT_MEM 0x00010000
12655+#define VXF_VIRT_UPTIME 0x00020000
12656+#define VXF_VIRT_CPU 0x00040000
12657+#define VXF_VIRT_LOAD 0x00080000
12658+#define VXF_VIRT_TIME 0x00100000
12659+
12660+#define VXF_HIDE_MOUNT 0x01000000
12661+/* was VXF_HIDE_NETIF 0x02000000 */
12662+#define VXF_HIDE_VINFO 0x04000000
12663+
12664+#define VXF_STATE_SETUP (1ULL << 32)
12665+#define VXF_STATE_INIT (1ULL << 33)
12666+#define VXF_STATE_ADMIN (1ULL << 34)
12667+
12668+#define VXF_SC_HELPER (1ULL << 36)
12669+#define VXF_REBOOT_KILL (1ULL << 37)
12670+#define VXF_PERSISTENT (1ULL << 38)
12671+
12672+#define VXF_FORK_RSS (1ULL << 48)
12673+#define VXF_PROLIFIC (1ULL << 49)
12674+
12675+#define VXF_IGNEG_NICE (1ULL << 52)
12676+
12677+#define VXF_ONE_TIME (0x0007ULL << 32)
12678+
12679+#define VXF_INIT_SET (VXF_STATE_SETUP | VXF_STATE_INIT | VXF_STATE_ADMIN)
12680+
12681+
12682+/* context migration */
12683+
12684+#define VXM_SET_INIT 0x00000001
12685+#define VXM_SET_REAPER 0x00000002
12686+
12687+/* context caps */
12688+
12689+#define VXC_SET_UTSNAME 0x00000001
12690+#define VXC_SET_RLIMIT 0x00000002
12691+#define VXC_FS_SECURITY 0x00000004
12692+#define VXC_FS_TRUSTED 0x00000008
12693+#define VXC_TIOCSTI 0x00000010
12694+
12695+/* was VXC_RAW_ICMP 0x00000100 */
12696+#define VXC_SYSLOG 0x00001000
12697+#define VXC_OOM_ADJUST 0x00002000
12698+#define VXC_AUDIT_CONTROL 0x00004000
12699+
12700+/* #define VXC_SECURE_MOUNT 0x00010000
12701+#define VXC_SECURE_REMOUNT 0x00020000 */
12702+#define VXC_BINARY_MOUNT 0x00040000
12703+#define VXC_DEV_MOUNT 0x00080000
12704+
12705+#define VXC_QUOTA_CTL 0x00100000
12706+#define VXC_ADMIN_MAPPER 0x00200000
12707+#define VXC_ADMIN_CLOOP 0x00400000
12708+
12709+#define VXC_KTHREAD 0x01000000
12710+#define VXC_NAMESPACE 0x02000000
12711+
12712+#endif /* _UAPI_VS_CONTEXT_H */
12713diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/context_cmd.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/context_cmd.h
12714--- linux-3.10.17/include/uapi/vserver/context_cmd.h 1970-01-01 00:00:00.000000000 +0000
12715+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/context_cmd.h 2013-08-22 20:30:00.000000000 +0000
12716@@ -0,0 +1,115 @@
12717+#ifndef _UAPI_VS_CONTEXT_CMD_H
12718+#define _UAPI_VS_CONTEXT_CMD_H
12719+
12720+
12721+/* vinfo commands */
12722+
12723+#define VCMD_task_xid VC_CMD(VINFO, 1, 0)
12724+
12725+
12726+#define VCMD_vx_info VC_CMD(VINFO, 5, 0)
12727+
12728+struct vcmd_vx_info_v0 {
12729+ uint32_t xid;
12730+ uint32_t initpid;
12731+ /* more to come */
12732+};
12733+
12734+
12735+#define VCMD_ctx_stat VC_CMD(VSTAT, 0, 0)
12736+
12737+struct vcmd_ctx_stat_v0 {
12738+ uint32_t usecnt;
12739+ uint32_t tasks;
12740+ /* more to come */
12741+};
12742+
12743+
12744+/* context commands */
12745+
12746+#define VCMD_ctx_create_v0 VC_CMD(VPROC, 1, 0)
12747+#define VCMD_ctx_create VC_CMD(VPROC, 1, 1)
12748+
12749+struct vcmd_ctx_create {
12750+ uint64_t flagword;
12751+};
12752+
12753+#define VCMD_ctx_migrate_v0 VC_CMD(PROCMIG, 1, 0)
12754+#define VCMD_ctx_migrate VC_CMD(PROCMIG, 1, 1)
12755+
12756+struct vcmd_ctx_migrate {
12757+ uint64_t flagword;
12758+};
12759+
12760+
12761+
12762+/* flag commands */
12763+
12764+#define VCMD_get_cflags VC_CMD(FLAGS, 1, 0)
12765+#define VCMD_set_cflags VC_CMD(FLAGS, 2, 0)
12766+
12767+struct vcmd_ctx_flags_v0 {
12768+ uint64_t flagword;
12769+ uint64_t mask;
12770+};
12771+
12772+
12773+
12774+/* context caps commands */
12775+
12776+#define VCMD_get_ccaps VC_CMD(FLAGS, 3, 1)
12777+#define VCMD_set_ccaps VC_CMD(FLAGS, 4, 1)
12778+
12779+struct vcmd_ctx_caps_v1 {
12780+ uint64_t ccaps;
12781+ uint64_t cmask;
12782+};
12783+
12784+
12785+
12786+/* bcaps commands */
12787+
12788+#define VCMD_get_bcaps VC_CMD(FLAGS, 9, 0)
12789+#define VCMD_set_bcaps VC_CMD(FLAGS, 10, 0)
12790+
12791+struct vcmd_bcaps {
12792+ uint64_t bcaps;
12793+ uint64_t bmask;
12794+};
12795+
12796+
12797+
12798+/* umask commands */
12799+
12800+#define VCMD_get_umask VC_CMD(FLAGS, 13, 0)
12801+#define VCMD_set_umask VC_CMD(FLAGS, 14, 0)
12802+
12803+struct vcmd_umask {
12804+ uint64_t umask;
12805+ uint64_t mask;
12806+};
12807+
12808+
12809+
12810+/* wmask commands */
12811+
12812+#define VCMD_get_wmask VC_CMD(FLAGS, 15, 0)
12813+#define VCMD_set_wmask VC_CMD(FLAGS, 16, 0)
12814+
12815+struct vcmd_wmask {
12816+ uint64_t wmask;
12817+ uint64_t mask;
12818+};
12819+
12820+
12821+
12822+/* OOM badness */
12823+
12824+#define VCMD_get_badness VC_CMD(MEMCTRL, 5, 0)
12825+#define VCMD_set_badness VC_CMD(MEMCTRL, 6, 0)
12826+
12827+struct vcmd_badness_v0 {
12828+ int64_t bias;
12829+};
12830+
12831+#endif /* _UAPI_VS_CONTEXT_CMD_H */
12832diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/cvirt_cmd.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/cvirt_cmd.h
12833--- linux-3.10.17/include/uapi/vserver/cvirt_cmd.h 1970-01-01 00:00:00.000000000 +0000
12834+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/cvirt_cmd.h 2013-08-22 20:30:00.000000000 +0000
12835@@ -0,0 +1,41 @@
12836+#ifndef _UAPI_VS_CVIRT_CMD_H
12837+#define _UAPI_VS_CVIRT_CMD_H
12838+
12839+
12840+/* virtual host info name commands */
12841+
12842+#define VCMD_set_vhi_name VC_CMD(VHOST, 1, 0)
12843+#define VCMD_get_vhi_name VC_CMD(VHOST, 2, 0)
12844+
12845+struct vcmd_vhi_name_v0 {
12846+ uint32_t field;
12847+ char name[65];
12848+};
12849+
12850+
12851+enum vhi_name_field {
12852+ VHIN_CONTEXT = 0,
12853+ VHIN_SYSNAME,
12854+ VHIN_NODENAME,
12855+ VHIN_RELEASE,
12856+ VHIN_VERSION,
12857+ VHIN_MACHINE,
12858+ VHIN_DOMAINNAME,
12859+};
12860+
12861+
12862+
12863+#define VCMD_virt_stat VC_CMD(VSTAT, 3, 0)
12864+
12865+struct vcmd_virt_stat_v0 {
12866+ uint64_t offset;
12867+ uint64_t uptime;
12868+ uint32_t nr_threads;
12869+ uint32_t nr_running;
12870+ uint32_t nr_uninterruptible;
12871+ uint32_t nr_onhold;
12872+ uint32_t nr_forks;
12873+ uint32_t load[3];
12874+};
12875+
12876+#endif /* _UAPI_VS_CVIRT_CMD_H */
12877diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/debug_cmd.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/debug_cmd.h
12878--- linux-3.10.17/include/uapi/vserver/debug_cmd.h 1970-01-01 00:00:00.000000000 +0000
12879+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/debug_cmd.h 2013-08-22 20:30:00.000000000 +0000
12880@@ -0,0 +1,24 @@
12881+#ifndef _UAPI_VS_DEBUG_CMD_H
12882+#define _UAPI_VS_DEBUG_CMD_H
12883+
12884+
12885+/* debug commands */
12886+
12887+#define VCMD_dump_history VC_CMD(DEBUG, 1, 0)
12888+
12889+#define VCMD_read_history VC_CMD(DEBUG, 5, 0)
12890+#define VCMD_read_monitor VC_CMD(DEBUG, 6, 0)
12891+
12892+struct vcmd_read_history_v0 {
12893+ uint32_t index;
12894+ uint32_t count;
12895+ char __user *data;
12896+};
12897+
12898+struct vcmd_read_monitor_v0 {
12899+ uint32_t index;
12900+ uint32_t count;
12901+ char __user *data;
12902+};
12903+
12904+#endif /* _UAPI_VS_DEBUG_CMD_H */
12905diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/device.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/device.h
12906--- linux-3.10.17/include/uapi/vserver/device.h 1970-01-01 00:00:00.000000000 +0000
12907+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/device.h 2013-08-22 20:30:00.000000000 +0000
12908@@ -0,0 +1,12 @@
12909+#ifndef _UAPI_VS_DEVICE_H
12910+#define _UAPI_VS_DEVICE_H
12911+
12912+
12913+#define DATTR_CREATE 0x00000001
12914+#define DATTR_OPEN 0x00000002
12915+
12916+#define DATTR_REMAP 0x00000010
12917+
12918+#define DATTR_MASK 0x00000013
12919+
12920+#endif /* _UAPI_VS_DEVICE_H */
12921diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/device_cmd.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/device_cmd.h
12922--- linux-3.10.17/include/uapi/vserver/device_cmd.h 1970-01-01 00:00:00.000000000 +0000
12923+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/device_cmd.h 2013-08-22 20:30:00.000000000 +0000
12924@@ -0,0 +1,16 @@
12925+#ifndef _UAPI_VS_DEVICE_CMD_H
12926+#define _UAPI_VS_DEVICE_CMD_H
12927+
12928+
12929+/* device vserver commands */
12930+
12931+#define VCMD_set_mapping VC_CMD(DEVICE, 1, 0)
12932+#define VCMD_unset_mapping VC_CMD(DEVICE, 2, 0)
12933+
12934+struct vcmd_set_mapping_v0 {
12935+ const char __user *device;
12936+ const char __user *target;
12937+ uint32_t flags;
12938+};
12939+
12940+#endif /* _UAPI_VS_DEVICE_CMD_H */
12941diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/dlimit_cmd.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/dlimit_cmd.h
12942--- linux-3.10.17/include/uapi/vserver/dlimit_cmd.h 1970-01-01 00:00:00.000000000 +0000
12943+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/dlimit_cmd.h 2013-08-22 20:30:00.000000000 +0000
12944@@ -0,0 +1,67 @@
12945+#ifndef _UAPI_VS_DLIMIT_CMD_H
12946+#define _UAPI_VS_DLIMIT_CMD_H
12947+
12948+
12949+/* dlimit vserver commands */
12950+
12951+#define VCMD_add_dlimit VC_CMD(DLIMIT, 1, 0)
12952+#define VCMD_rem_dlimit VC_CMD(DLIMIT, 2, 0)
12953+
12954+#define VCMD_set_dlimit VC_CMD(DLIMIT, 5, 0)
12955+#define VCMD_get_dlimit VC_CMD(DLIMIT, 6, 0)
12956+
12957+struct vcmd_ctx_dlimit_base_v0 {
12958+ const char __user *name;
12959+ uint32_t flags;
12960+};
12961+
12962+struct vcmd_ctx_dlimit_v0 {
12963+ const char __user *name;
12964+ uint32_t space_used; /* used space in kbytes */
12965+ uint32_t space_total; /* maximum space in kbytes */
12966+ uint32_t inodes_used; /* used inodes */
12967+ uint32_t inodes_total; /* maximum inodes */
12968+ uint32_t reserved; /* reserved for root in % */
12969+ uint32_t flags;
12970+};
12971+
12972+#define CDLIM_UNSET ((uint32_t)0UL)
12973+#define CDLIM_INFINITY ((uint32_t)~0UL)
12974+#define CDLIM_KEEP ((uint32_t)~1UL)
12975+
12976+#define DLIME_UNIT 0
12977+#define DLIME_KILO 1
12978+#define DLIME_MEGA 2
12979+#define DLIME_GIGA 3
12980+
12981+#define DLIMF_SHIFT 0x10
12982+
12983+#define DLIMS_USED 0
12984+#define DLIMS_TOTAL 2
12985+
12986+static inline
12987+uint64_t dlimit_space_32to64(uint32_t val, uint32_t flags, int shift)
12988+{
12989+ int exp = (flags & DLIMF_SHIFT) ?
12990+ (flags >> shift) & DLIME_GIGA : DLIME_KILO;
12991+ return ((uint64_t)val) << (10 * exp);
12992+}
12993+
12994+static inline
12995+uint32_t dlimit_space_64to32(uint64_t val, uint32_t *flags, int shift)
12996+{
12997+ int exp = 0;
12998+
12999+ if (*flags & DLIMF_SHIFT) {
13000+ while (val > (1LL << 32) && (exp < 3)) {
13001+ val >>= 10;
13002+ exp++;
13003+ }
13004+ *flags &= ~(DLIME_GIGA << shift);
13005+ *flags |= exp << shift;
13006+ } else
13007+ val >>= 10;
13008+ return val;
13009+}
13010+
13011+#endif /* _UAPI_VS_DLIMIT_CMD_H */
13012diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/inode.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/inode.h
13013--- linux-3.10.17/include/uapi/vserver/inode.h 1970-01-01 00:00:00.000000000 +0000
13014+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/inode.h 2013-08-22 20:30:00.000000000 +0000
13015@@ -0,0 +1,23 @@
13016+#ifndef _UAPI_VS_INODE_H
13017+#define _UAPI_VS_INODE_H
13018+
13019+
13020+#define IATTR_TAG 0x01000000
13021+
13022+#define IATTR_ADMIN 0x00000001
13023+#define IATTR_WATCH 0x00000002
13024+#define IATTR_HIDE 0x00000004
13025+#define IATTR_FLAGS 0x00000007
13026+
13027+#define IATTR_BARRIER 0x00010000
13028+#define IATTR_IXUNLINK 0x00020000
13029+#define IATTR_IMMUTABLE 0x00040000
13030+#define IATTR_COW 0x00080000
13031+
13032+
13033+/* inode ioctls */
13034+
13035+#define FIOC_GETXFLG _IOR('x', 5, long)
13036+#define FIOC_SETXFLG _IOW('x', 6, long)
13037+
13038+#endif /* _UAPI_VS_INODE_H */
13039diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/inode_cmd.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/inode_cmd.h
13040--- linux-3.10.17/include/uapi/vserver/inode_cmd.h 1970-01-01 00:00:00.000000000 +0000
13041+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/inode_cmd.h 2013-08-22 20:30:00.000000000 +0000
13042@@ -0,0 +1,26 @@
13043+#ifndef _UAPI_VS_INODE_CMD_H
13044+#define _UAPI_VS_INODE_CMD_H
13045+
13046+
13047+/* inode vserver commands */
13048+
13049+#define VCMD_get_iattr VC_CMD(INODE, 1, 1)
13050+#define VCMD_set_iattr VC_CMD(INODE, 2, 1)
13051+
13052+#define VCMD_fget_iattr VC_CMD(INODE, 3, 0)
13053+#define VCMD_fset_iattr VC_CMD(INODE, 4, 0)
13054+
13055+struct vcmd_ctx_iattr_v1 {
13056+ const char __user *name;
13057+ uint32_t tag;
13058+ uint32_t flags;
13059+ uint32_t mask;
13060+};
13061+
13062+struct vcmd_ctx_fiattr_v0 {
13063+ uint32_t tag;
13064+ uint32_t flags;
13065+ uint32_t mask;
13066+};
13067+
13068+#endif /* _UAPI_VS_INODE_CMD_H */
13069diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/limit.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/limit.h
13070--- linux-3.10.17/include/uapi/vserver/limit.h 1970-01-01 00:00:00.000000000 +0000
13071+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/limit.h 2013-08-22 20:30:00.000000000 +0000
13072@@ -0,0 +1,14 @@
13073+#ifndef _UAPI_VS_LIMIT_H
13074+#define _UAPI_VS_LIMIT_H
13075+
13076+
13077+#define VLIMIT_NSOCK 16
13078+#define VLIMIT_OPENFD 17
13079+#define VLIMIT_ANON 18
13080+#define VLIMIT_SHMEM 19
13081+#define VLIMIT_SEMARY 20
13082+#define VLIMIT_NSEMS 21
13083+#define VLIMIT_DENTRY 22
13084+#define VLIMIT_MAPPED 23
13085+
13086+#endif /* _UAPI_VS_LIMIT_H */
13087diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/limit_cmd.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/limit_cmd.h
13088--- linux-3.10.17/include/uapi/vserver/limit_cmd.h 1970-01-01 00:00:00.000000000 +0000
13089+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/limit_cmd.h 2013-08-22 20:30:00.000000000 +0000
13090@@ -0,0 +1,40 @@
13091+#ifndef _UAPI_VS_LIMIT_CMD_H
13092+#define _UAPI_VS_LIMIT_CMD_H
13093+
13094+
13095+/* rlimit vserver commands */
13096+
13097+#define VCMD_get_rlimit VC_CMD(RLIMIT, 1, 0)
13098+#define VCMD_set_rlimit VC_CMD(RLIMIT, 2, 0)
13099+#define VCMD_get_rlimit_mask VC_CMD(RLIMIT, 3, 0)
13100+#define VCMD_reset_hits VC_CMD(RLIMIT, 7, 0)
13101+#define VCMD_reset_minmax VC_CMD(RLIMIT, 9, 0)
13102+
13103+struct vcmd_ctx_rlimit_v0 {
13104+ uint32_t id;
13105+ uint64_t minimum;
13106+ uint64_t softlimit;
13107+ uint64_t maximum;
13108+};
13109+
13110+struct vcmd_ctx_rlimit_mask_v0 {
13111+ uint32_t minimum;
13112+ uint32_t softlimit;
13113+ uint32_t maximum;
13114+};
13115+
13116+#define VCMD_rlimit_stat VC_CMD(VSTAT, 1, 0)
13117+
13118+struct vcmd_rlimit_stat_v0 {
13119+ uint32_t id;
13120+ uint32_t hits;
13121+ uint64_t value;
13122+ uint64_t minimum;
13123+ uint64_t maximum;
13124+};
13125+
13126+#define CRLIM_UNSET (0ULL)
13127+#define CRLIM_INFINITY (~0ULL)
13128+#define CRLIM_KEEP (~1ULL)
13129+
13130+#endif /* _UAPI_VS_LIMIT_CMD_H */
13131diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/monitor.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/monitor.h
13132--- linux-3.10.17/include/uapi/vserver/monitor.h 1970-01-01 00:00:00.000000000 +0000
13133+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/monitor.h 2013-08-22 20:30:00.000000000 +0000
13134@@ -0,0 +1,96 @@
13135+#ifndef _UAPI_VS_MONITOR_H
13136+#define _UAPI_VS_MONITOR_H
13137+
13138+#include <linux/types.h>
13139+
13140+
13141+enum {
13142+ VXM_UNUSED = 0,
13143+
13144+ VXM_SYNC = 0x10,
13145+
13146+ VXM_UPDATE = 0x20,
13147+ VXM_UPDATE_1,
13148+ VXM_UPDATE_2,
13149+
13150+ VXM_RQINFO_1 = 0x24,
13151+ VXM_RQINFO_2,
13152+
13153+ VXM_ACTIVATE = 0x40,
13154+ VXM_DEACTIVATE,
13155+ VXM_IDLE,
13156+
13157+ VXM_HOLD = 0x44,
13158+ VXM_UNHOLD,
13159+
13160+ VXM_MIGRATE = 0x48,
13161+ VXM_RESCHED,
13162+
13163+ /* all other bits are flags */
13164+ VXM_SCHED = 0x80,
13165+};
13166+
13167+struct _vxm_update_1 {
13168+ uint32_t tokens_max;
13169+ uint32_t fill_rate;
13170+ uint32_t interval;
13171+};
13172+
13173+struct _vxm_update_2 {
13174+ uint32_t tokens_min;
13175+ uint32_t fill_rate;
13176+ uint32_t interval;
13177+};
13178+
13179+struct _vxm_rqinfo_1 {
13180+ uint16_t running;
13181+ uint16_t onhold;
13182+ uint16_t iowait;
13183+ uint16_t uintr;
13184+ uint32_t idle_tokens;
13185+};
13186+
13187+struct _vxm_rqinfo_2 {
13188+ uint32_t norm_time;
13189+ uint32_t idle_time;
13190+ uint32_t idle_skip;
13191+};
13192+
13193+struct _vxm_sched {
13194+ uint32_t tokens;
13195+ uint32_t norm_time;
13196+ uint32_t idle_time;
13197+};
13198+
13199+struct _vxm_task {
13200+ uint16_t pid;
13201+ uint16_t state;
13202+};
13203+
13204+struct _vxm_event {
13205+ uint32_t jif;
13206+ union {
13207+ uint32_t seq;
13208+ uint32_t sec;
13209+ };
13210+ union {
13211+ uint32_t tokens;
13212+ uint32_t nsec;
13213+ struct _vxm_task tsk;
13214+ };
13215+};
13216+
13217+struct _vx_mon_entry {
13218+ uint16_t type;
13219+ uint16_t xid;
13220+ union {
13221+ struct _vxm_event ev;
13222+ struct _vxm_sched sd;
13223+ struct _vxm_update_1 u1;
13224+ struct _vxm_update_2 u2;
13225+ struct _vxm_rqinfo_1 q1;
13226+ struct _vxm_rqinfo_2 q2;
13227+ };
13228+};
13229+
13230+#endif /* _UAPI_VS_MONITOR_H */
13231diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/network.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/network.h
13232--- linux-3.10.17/include/uapi/vserver/network.h 1970-01-01 00:00:00.000000000 +0000
13233+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/network.h 2013-08-22 20:30:00.000000000 +0000
13234@@ -0,0 +1,76 @@
13235+#ifndef _UAPI_VS_NETWORK_H
13236+#define _UAPI_VS_NETWORK_H
13237+
13238+#include <linux/types.h>
13239+
13240+
13241+#define MAX_N_CONTEXT 65535 /* Arbitrary limit */
13242+
13243+
13244+/* network flags */
13245+
13246+#define NXF_INFO_PRIVATE 0x00000008
13247+
13248+#define NXF_SINGLE_IP 0x00000100
13249+#define NXF_LBACK_REMAP 0x00000200
13250+#define NXF_LBACK_ALLOW 0x00000400
13251+
13252+#define NXF_HIDE_NETIF 0x02000000
13253+#define NXF_HIDE_LBACK 0x04000000
13254+
13255+#define NXF_STATE_SETUP (1ULL << 32)
13256+#define NXF_STATE_ADMIN (1ULL << 34)
13257+
13258+#define NXF_SC_HELPER (1ULL << 36)
13259+#define NXF_PERSISTENT (1ULL << 38)
13260+
13261+#define NXF_ONE_TIME (0x0005ULL << 32)
13262+
13263+
13264+#define NXF_INIT_SET (__nxf_init_set())
13265+
13266+static inline uint64_t __nxf_init_set(void) {
13267+ return NXF_STATE_ADMIN
13268+#ifdef CONFIG_VSERVER_AUTO_LBACK
13269+ | NXF_LBACK_REMAP
13270+ | NXF_HIDE_LBACK
13271+#endif
13272+#ifdef CONFIG_VSERVER_AUTO_SINGLE
13273+ | NXF_SINGLE_IP
13274+#endif
13275+ | NXF_HIDE_NETIF;
13276+}
13277+
13278+
13279+/* network caps */
13280+
13281+#define NXC_TUN_CREATE 0x00000001
13282+
13283+#define NXC_RAW_ICMP 0x00000100
13284+
13285+#define NXC_MULTICAST 0x00001000
13286+
13287+
13288+/* address types */
13289+
13290+#define NXA_TYPE_IPV4 0x0001
13291+#define NXA_TYPE_IPV6 0x0002
13292+
13293+#define NXA_TYPE_NONE 0x0000
13294+#define NXA_TYPE_ANY 0x00FF
13295+
13296+#define NXA_TYPE_ADDR 0x0010
13297+#define NXA_TYPE_MASK 0x0020
13298+#define NXA_TYPE_RANGE 0x0040
13299+
13300+#define NXA_MASK_ALL (NXA_TYPE_ADDR | NXA_TYPE_MASK | NXA_TYPE_RANGE)
13301+
13302+#define NXA_MOD_BCAST 0x0100
13303+#define NXA_MOD_LBACK 0x0200
13304+
13305+#define NXA_LOOPBACK 0x1000
13306+
13307+#define NXA_MASK_BIND (NXA_MASK_ALL | NXA_MOD_BCAST | NXA_MOD_LBACK)
13308+#define NXA_MASK_SHOW (NXA_MASK_ALL | NXA_LOOPBACK)
13309+
13310+#endif /* _UAPI_VS_NETWORK_H */
13311diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/network_cmd.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/network_cmd.h
13312--- linux-3.10.17/include/uapi/vserver/network_cmd.h 1970-01-01 00:00:00.000000000 +0000
13313+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/network_cmd.h 2013-08-22 20:30:00.000000000 +0000
13314@@ -0,0 +1,123 @@
13315+#ifndef _UAPI_VS_NETWORK_CMD_H
13316+#define _UAPI_VS_NETWORK_CMD_H
13317+
13318+
13319+/* vinfo commands */
13320+
13321+#define VCMD_task_nid VC_CMD(VINFO, 2, 0)
13322+
13323+
13324+#define VCMD_nx_info VC_CMD(VINFO, 6, 0)
13325+
13326+struct vcmd_nx_info_v0 {
13327+ uint32_t nid;
13328+ /* more to come */
13329+};
13330+
13331+
13332+#include <linux/in.h>
13333+#include <linux/in6.h>
13334+
13335+#define VCMD_net_create_v0 VC_CMD(VNET, 1, 0)
13336+#define VCMD_net_create VC_CMD(VNET, 1, 1)
13337+
13338+struct vcmd_net_create {
13339+ uint64_t flagword;
13340+};
13341+
13342+#define VCMD_net_migrate VC_CMD(NETMIG, 1, 0)
13343+
13344+#define VCMD_net_add VC_CMD(NETALT, 1, 0)
13345+#define VCMD_net_remove VC_CMD(NETALT, 2, 0)
13346+
13347+struct vcmd_net_addr_v0 {
13348+ uint16_t type;
13349+ uint16_t count;
13350+ struct in_addr ip[4];
13351+ struct in_addr mask[4];
13352+};
13353+
13354+#define VCMD_net_add_ipv4_v1 VC_CMD(NETALT, 1, 1)
13355+#define VCMD_net_rem_ipv4_v1 VC_CMD(NETALT, 2, 1)
13356+
13357+struct vcmd_net_addr_ipv4_v1 {
13358+ uint16_t type;
13359+ uint16_t flags;
13360+ struct in_addr ip;
13361+ struct in_addr mask;
13362+};
13363+
13364+#define VCMD_net_add_ipv4 VC_CMD(NETALT, 1, 2)
13365+#define VCMD_net_rem_ipv4 VC_CMD(NETALT, 2, 2)
13366+
13367+struct vcmd_net_addr_ipv4_v2 {
13368+ uint16_t type;
13369+ uint16_t flags;
13370+ struct in_addr ip;
13371+ struct in_addr ip2;
13372+ struct in_addr mask;
13373+};
13374+
13375+#define VCMD_net_add_ipv6 VC_CMD(NETALT, 3, 1)
13376+#define VCMD_net_remove_ipv6 VC_CMD(NETALT, 4, 1)
13377+
13378+struct vcmd_net_addr_ipv6_v1 {
13379+ uint16_t type;
13380+ uint16_t flags;
13381+ uint32_t prefix;
13382+ struct in6_addr ip;
13383+ struct in6_addr mask;
13384+};
13385+
13386+#define VCMD_add_match_ipv4 VC_CMD(NETALT, 5, 0)
13387+#define VCMD_get_match_ipv4 VC_CMD(NETALT, 6, 0)
13388+
13389+struct vcmd_match_ipv4_v0 {
13390+ uint16_t type;
13391+ uint16_t flags;
13392+ uint16_t parent;
13393+ uint16_t prefix;
13394+ struct in_addr ip;
13395+ struct in_addr ip2;
13396+ struct in_addr mask;
13397+};
13398+
13399+#define VCMD_add_match_ipv6 VC_CMD(NETALT, 7, 0)
13400+#define VCMD_get_match_ipv6 VC_CMD(NETALT, 8, 0)
13401+
13402+struct vcmd_match_ipv6_v0 {
13403+ uint16_t type;
13404+ uint16_t flags;
13405+ uint16_t parent;
13406+ uint16_t prefix;
13407+ struct in6_addr ip;
13408+ struct in6_addr ip2;
13409+ struct in6_addr mask;
13410+};
13411+
13412+
13413+
13414+
13415+/* flag commands */
13416+
13417+#define VCMD_get_nflags VC_CMD(FLAGS, 5, 0)
13418+#define VCMD_set_nflags VC_CMD(FLAGS, 6, 0)
13419+
13420+struct vcmd_net_flags_v0 {
13421+ uint64_t flagword;
13422+ uint64_t mask;
13423+};
13424+
13425+
13426+
13427+/* network caps commands */
13428+
13429+#define VCMD_get_ncaps VC_CMD(FLAGS, 7, 0)
13430+#define VCMD_set_ncaps VC_CMD(FLAGS, 8, 0)
13431+
13432+struct vcmd_net_caps_v0 {
13433+ uint64_t ncaps;
13434+ uint64_t cmask;
13435+};
13436+
13437+#endif /* _UAPI_VS_NETWORK_CMD_H */
13438diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/sched_cmd.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/sched_cmd.h
13439--- linux-3.10.17/include/uapi/vserver/sched_cmd.h 1970-01-01 00:00:00.000000000 +0000
13440+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/sched_cmd.h 2013-08-22 20:30:00.000000000 +0000
13441@@ -0,0 +1,13 @@
13442+#ifndef _UAPI_VS_SCHED_CMD_H
13443+#define _UAPI_VS_SCHED_CMD_H
13444+
13445+
13446+struct vcmd_prio_bias {
13447+ int32_t cpu_id;
13448+ int32_t prio_bias;
13449+};
13450+
13451+#define VCMD_set_prio_bias VC_CMD(SCHED, 4, 0)
13452+#define VCMD_get_prio_bias VC_CMD(SCHED, 5, 0)
13453+
13454+#endif /* _UAPI_VS_SCHED_CMD_H */
13455diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/signal_cmd.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/signal_cmd.h
13456--- linux-3.10.17/include/uapi/vserver/signal_cmd.h 1970-01-01 00:00:00.000000000 +0000
13457+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/signal_cmd.h 2013-08-22 20:30:00.000000000 +0000
13458@@ -0,0 +1,31 @@
13459+#ifndef _UAPI_VS_SIGNAL_CMD_H
13460+#define _UAPI_VS_SIGNAL_CMD_H
13461+
13462+
13463+/* signalling vserver commands */
13464+
13465+#define VCMD_ctx_kill VC_CMD(PROCTRL, 1, 0)
13466+#define VCMD_wait_exit VC_CMD(EVENT, 99, 0)
13467+
13468+struct vcmd_ctx_kill_v0 {
13469+ int32_t pid;
13470+ int32_t sig;
13471+};
13472+
13473+struct vcmd_wait_exit_v0 {
13474+ int32_t reboot_cmd;
13475+ int32_t exit_code;
13476+};
13477+
13478+
13479+/* process alteration commands */
13480+
13481+#define VCMD_get_pflags VC_CMD(PROCALT, 5, 0)
13482+#define VCMD_set_pflags VC_CMD(PROCALT, 6, 0)
13483+
13484+struct vcmd_pflags_v0 {
13485+ uint32_t flagword;
13486+ uint32_t mask;
13487+};
13488+
13489+#endif /* _UAPI_VS_SIGNAL_CMD_H */
13490diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/space_cmd.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/space_cmd.h
13491--- linux-3.10.17/include/uapi/vserver/space_cmd.h 1970-01-01 00:00:00.000000000 +0000
13492+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/space_cmd.h 2013-08-22 20:30:00.000000000 +0000
13493@@ -0,0 +1,28 @@
13494+#ifndef _UAPI_VS_SPACE_CMD_H
13495+#define _UAPI_VS_SPACE_CMD_H
13496+
13497+
13498+#define VCMD_enter_space_v0 VC_CMD(PROCALT, 1, 0)
13499+#define VCMD_enter_space_v1 VC_CMD(PROCALT, 1, 1)
13500+#define VCMD_enter_space VC_CMD(PROCALT, 1, 2)
13501+
13502+#define VCMD_set_space_v0 VC_CMD(PROCALT, 3, 0)
13503+#define VCMD_set_space_v1 VC_CMD(PROCALT, 3, 1)
13504+#define VCMD_set_space VC_CMD(PROCALT, 3, 2)
13505+
13506+#define VCMD_get_space_mask_v0 VC_CMD(PROCALT, 4, 0)
13507+
13508+#define VCMD_get_space_mask VC_CMD(VSPACE, 0, 1)
13509+#define VCMD_get_space_default VC_CMD(VSPACE, 1, 0)
13510+
13511+
13512+struct vcmd_space_mask_v1 {
13513+ uint64_t mask;
13514+};
13515+
13516+struct vcmd_space_mask_v2 {
13517+ uint64_t mask;
13518+ uint32_t index;
13519+};
13520+
13521+#endif /* _UAPI_VS_SPACE_CMD_H */
13522diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/switch.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/switch.h
13523--- linux-3.10.17/include/uapi/vserver/switch.h 1970-01-01 00:00:00.000000000 +0000
13524+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/switch.h 2013-08-22 20:30:00.000000000 +0000
13525@@ -0,0 +1,90 @@
13526+#ifndef _UAPI_VS_SWITCH_H
13527+#define _UAPI_VS_SWITCH_H
13528+
13529+#include <linux/types.h>
13530+
13531+
13532+#define VC_CATEGORY(c) (((c) >> 24) & 0x3F)
13533+#define VC_COMMAND(c) (((c) >> 16) & 0xFF)
13534+#define VC_VERSION(c) ((c) & 0xFFF)
13535+
13536+#define VC_CMD(c, i, v) ((((VC_CAT_ ## c) & 0x3F) << 24) \
13537+ | (((i) & 0xFF) << 16) | ((v) & 0xFFF))
13538+
13539+/*
13540+
13541+ Syscall Matrix V2.8
13542+
13543+ |VERSION|CREATE |MODIFY |MIGRATE|CONTROL|EXPERIM| |SPECIAL|SPECIAL|
13544+ |STATS |DESTROY|ALTER |CHANGE |LIMIT |TEST | | | |
13545+ |INFO |SETUP | |MOVE | | | | | |
13546+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13547+ SYSTEM |VERSION|VSETUP |VHOST | | | | |DEVICE | |
13548+ HOST | 00| 01| 02| 03| 04| 05| | 06| 07|
13549+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13550+ CPU | |VPROC |PROCALT|PROCMIG|PROCTRL| | |SCHED. | |
13551+ PROCESS| 08| 09| 10| 11| 12| 13| | 14| 15|
13552+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13553+ MEMORY | | | | |MEMCTRL| | |SWAP | |
13554+ | 16| 17| 18| 19| 20| 21| | 22| 23|
13555+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13556+ NETWORK| |VNET |NETALT |NETMIG |NETCTL | | |SERIAL | |
13557+ | 24| 25| 26| 27| 28| 29| | 30| 31|
13558+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13559+ DISK | | | |TAGMIG |DLIMIT | | |INODE | |
13560+ VFS | 32| 33| 34| 35| 36| 37| | 38| 39|
13561+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13562+ OTHER |VSTAT | | | | | | |VINFO | |
13563+ | 40| 41| 42| 43| 44| 45| | 46| 47|
13564+ =======+=======+=======+=======+=======+=======+=======+ +=======+=======+
13565+ SPECIAL|EVENT | | | |FLAGS | | |VSPACE | |
13566+ | 48| 49| 50| 51| 52| 53| | 54| 55|
13567+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13568+ SPECIAL|DEBUG | | | |RLIMIT |SYSCALL| | |COMPAT |
13569+ | 56| 57| 58| 59| 60|TEST 61| | 62| 63|
13570+ -------+-------+-------+-------+-------+-------+-------+ +-------+-------+
13571+
13572+*/
13573+
13574+#define VC_CAT_VERSION 0
13575+
13576+#define VC_CAT_VSETUP 1
13577+#define VC_CAT_VHOST 2
13578+
13579+#define VC_CAT_DEVICE 6
13580+
13581+#define VC_CAT_VPROC 9
13582+#define VC_CAT_PROCALT 10
13583+#define VC_CAT_PROCMIG 11
13584+#define VC_CAT_PROCTRL 12
13585+
13586+#define VC_CAT_SCHED 14
13587+#define VC_CAT_MEMCTRL 20
13588+
13589+#define VC_CAT_VNET 25
13590+#define VC_CAT_NETALT 26
13591+#define VC_CAT_NETMIG 27
13592+#define VC_CAT_NETCTRL 28
13593+
13594+#define VC_CAT_TAGMIG 35
13595+#define VC_CAT_DLIMIT 36
13596+#define VC_CAT_INODE 38
13597+
13598+#define VC_CAT_VSTAT 40
13599+#define VC_CAT_VINFO 46
13600+#define VC_CAT_EVENT 48
13601+
13602+#define VC_CAT_FLAGS 52
13603+#define VC_CAT_VSPACE 54
13604+#define VC_CAT_DEBUG 56
13605+#define VC_CAT_RLIMIT 60
13606+
13607+#define VC_CAT_SYSTEST 61
13608+#define VC_CAT_COMPAT 63
13609+
13610+/* query version */
13611+
13612+#define VCMD_get_version VC_CMD(VERSION, 0, 0)
13613+#define VCMD_get_vci VC_CMD(VERSION, 1, 0)
13614+
13615+#endif /* _UAPI_VS_SWITCH_H */
13616diff -NurpP --minimal linux-3.10.17/include/uapi/vserver/tag_cmd.h linux-3.10.17-vs2.3.6.6/include/uapi/vserver/tag_cmd.h
13617--- linux-3.10.17/include/uapi/vserver/tag_cmd.h 1970-01-01 00:00:00.000000000 +0000
13618+++ linux-3.10.17-vs2.3.6.6/include/uapi/vserver/tag_cmd.h 2013-08-22 20:30:00.000000000 +0000
13619@@ -0,0 +1,14 @@
13620+#ifndef _UAPI_VS_TAG_CMD_H
13621+#define _UAPI_VS_TAG_CMD_H
13622+
13623+
13624+/* vinfo commands */
13625+
13626+#define VCMD_task_tag VC_CMD(VINFO, 3, 0)
13627+
13628+
13629+/* context commands */
13630+
13631+#define VCMD_tag_migrate VC_CMD(TAGMIG, 1, 0)
13632+
13633+#endif /* _UAPI_VS_TAG_CMD_H */
13634diff -NurpP --minimal linux-3.10.17/init/Kconfig linux-3.10.17-vs2.3.6.6/init/Kconfig
13635--- linux-3.10.17/init/Kconfig 2013-07-14 17:01:34.000000000 +0000
13636+++ linux-3.10.17-vs2.3.6.6/init/Kconfig 2013-08-22 20:30:00.000000000 +0000
13637@@ -805,6 +805,7 @@ config NUMA_BALANCING
13971 menuconfig CGROUPS 13638 menuconfig CGROUPS
13972 boolean "Control Group support" 13639 boolean "Control Group support"
13973 depends on EVENTFD 13640 depends on EVENTFD
@@ -13975,29 +13642,29 @@ diff -NurpP --minimal linux-3.4.57/init/Kconfig linux-3.4.57-vs2.3.3.9/init/Kcon
13975 help 13642 help
13976 This option adds support for grouping sets of processes together, for 13643 This option adds support for grouping sets of processes together, for
13977 use with process control subsystems such as Cpusets, CFS, memory 13644 use with process control subsystems such as Cpusets, CFS, memory
13978@@ -828,6 +829,7 @@ config IPC_NS 13645@@ -1067,6 +1068,7 @@ config IPC_NS
13979 config USER_NS 13646 config USER_NS
13980 bool "User namespace (EXPERIMENTAL)" 13647 bool "User namespace"
13981 depends on EXPERIMENTAL 13648 depends on UIDGID_CONVERTED
13982+ depends on VSERVER_DISABLED 13649+ depends on VSERVER_DISABLED
13983 default y 13650 select UIDGID_STRICT_TYPE_CHECKS
13984 help 13651
13985 This allows containers, i.e. vservers, to use user namespaces 13652 default n
13986diff -NurpP --minimal linux-3.4.57/init/main.c linux-3.4.57-vs2.3.3.9/init/main.c 13653diff -NurpP --minimal linux-3.10.17/init/main.c linux-3.10.17-vs2.3.6.6/init/main.c
13987--- linux-3.4.57/init/main.c 2013-08-13 14:13:36.000000000 +0000 13654--- linux-3.10.17/init/main.c 2013-10-25 15:17:44.000000000 +0000
13988+++ linux-3.4.57-vs2.3.3.9/init/main.c 2013-02-19 14:42:56.000000000 +0000 13655+++ linux-3.10.17-vs2.3.6.6/init/main.c 2013-10-26 18:07:38.000000000 +0000
13989@@ -68,6 +68,7 @@ 13656@@ -75,6 +75,7 @@
13990 #include <linux/shmem_fs.h> 13657 #include <linux/blkdev.h>
13991 #include <linux/slab.h> 13658 #include <linux/elevator.h>
13992 #include <linux/perf_event.h> 13659 #include <linux/random.h>
13993+#include <linux/vserver/percpu.h> 13660+#include <linux/vserver/percpu.h>
13994 13661
13995 #include <asm/io.h> 13662 #include <asm/io.h>
13996 #include <asm/bugs.h> 13663 #include <asm/bugs.h>
13997diff -NurpP --minimal linux-3.4.57/ipc/mqueue.c linux-3.4.57-vs2.3.3.9/ipc/mqueue.c 13664diff -NurpP --minimal linux-3.10.17/ipc/mqueue.c linux-3.10.17-vs2.3.6.6/ipc/mqueue.c
13998--- linux-3.4.57/ipc/mqueue.c 2012-05-21 16:07:34.000000000 +0000 13665--- linux-3.10.17/ipc/mqueue.c 2013-05-31 13:45:29.000000000 +0000
13999+++ linux-3.4.57-vs2.3.3.9/ipc/mqueue.c 2012-05-21 16:15:05.000000000 +0000 13666+++ linux-3.10.17-vs2.3.6.6/ipc/mqueue.c 2013-08-22 20:30:00.000000000 +0000
14000@@ -34,6 +34,8 @@ 13667@@ -35,6 +35,8 @@
14001 #include <linux/ipc_namespace.h> 13668 #include <linux/ipc_namespace.h>
14002 #include <linux/user_namespace.h> 13669 #include <linux/user_namespace.h>
14003 #include <linux/slab.h> 13670 #include <linux/slab.h>
@@ -14006,31 +13673,31 @@ diff -NurpP --minimal linux-3.4.57/ipc/mqueue.c linux-3.4.57-vs2.3.3.9/ipc/mqueu
14006 13673
14007 #include <net/sock.h> 13674 #include <net/sock.h>
14008 #include "util.h" 13675 #include "util.h"
14009@@ -67,6 +69,7 @@ struct mqueue_inode_info { 13676@@ -76,6 +78,7 @@ struct mqueue_inode_info {
14010 struct sigevent notify;
14011 struct pid* notify_owner; 13677 struct pid* notify_owner;
13678 struct user_namespace *notify_user_ns;
14012 struct user_struct *user; /* user who created, for accounting */ 13679 struct user_struct *user; /* user who created, for accounting */
14013+ struct vx_info *vxi; 13680+ struct vx_info *vxi;
14014 struct sock *notify_sock; 13681 struct sock *notify_sock;
14015 struct sk_buff *notify_cookie; 13682 struct sk_buff *notify_cookie;
14016 13683
14017@@ -129,6 +132,7 @@ static struct inode *mqueue_get_inode(st 13684@@ -234,6 +237,7 @@ static struct inode *mqueue_get_inode(st
14018 if (S_ISREG(mode)) { 13685 if (S_ISREG(mode)) {
14019 struct mqueue_inode_info *info; 13686 struct mqueue_inode_info *info;
14020 unsigned long mq_bytes, mq_msg_tblsz; 13687 unsigned long mq_bytes, mq_treesize;
14021+ struct vx_info *vxi = current_vx_info(); 13688+ struct vx_info *vxi = current_vx_info();
14022 13689
14023 inode->i_fop = &mqueue_file_operations; 13690 inode->i_fop = &mqueue_file_operations;
14024 inode->i_size = FILENT_SIZE; 13691 inode->i_size = FILENT_SIZE;
14025@@ -141,6 +145,7 @@ static struct inode *mqueue_get_inode(st 13692@@ -247,6 +251,7 @@ static struct inode *mqueue_get_inode(st
14026 info->notify_owner = NULL; 13693 info->notify_user_ns = NULL;
14027 info->qsize = 0; 13694 info->qsize = 0;
14028 info->user = NULL; /* set when all is ok */ 13695 info->user = NULL; /* set when all is ok */
14029+ info->vxi = NULL; 13696+ info->vxi = NULL;
13697 info->msg_tree = RB_ROOT;
13698 info->node_cache = NULL;
14030 memset(&info->attr, 0, sizeof(info->attr)); 13699 memset(&info->attr, 0, sizeof(info->attr));
14031 info->attr.mq_maxmsg = ipc_ns->mq_msg_max; 13700@@ -280,17 +285,20 @@ static struct inode *mqueue_get_inode(st
14032 info->attr.mq_msgsize = ipc_ns->mq_msgsize_max;
14033@@ -158,17 +163,20 @@ static struct inode *mqueue_get_inode(st
14034 13701
14035 spin_lock(&mq_lock); 13702 spin_lock(&mq_lock);
14036 if (u->mq_bytes + mq_bytes < u->mq_bytes || 13703 if (u->mq_bytes + mq_bytes < u->mq_bytes ||
@@ -14052,8 +13719,8 @@ diff -NurpP --minimal linux-3.4.57/ipc/mqueue.c linux-3.4.57-vs2.3.3.9/ipc/mqueu
14052 } else if (S_ISDIR(mode)) { 13719 } else if (S_ISDIR(mode)) {
14053 inc_nlink(inode); 13720 inc_nlink(inode);
14054 /* Some things misbehave if size == 0 on a directory */ 13721 /* Some things misbehave if size == 0 on a directory */
14055@@ -267,8 +275,11 @@ static void mqueue_evict_inode(struct in 13722@@ -402,8 +410,11 @@ static void mqueue_evict_inode(struct in
14056 + info->attr.mq_msgsize); 13723
14057 user = info->user; 13724 user = info->user;
14058 if (user) { 13725 if (user) {
14059+ struct vx_info *vxi = info->vxi; 13726+ struct vx_info *vxi = info->vxi;
@@ -14064,7 +13731,7 @@ diff -NurpP --minimal linux-3.4.57/ipc/mqueue.c linux-3.4.57-vs2.3.3.9/ipc/mqueu
14064 /* 13731 /*
14065 * get_ns_from_inode() ensures that the 13732 * get_ns_from_inode() ensures that the
14066 * (ipc_ns = sb->s_fs_info) is either a valid ipc_ns 13733 * (ipc_ns = sb->s_fs_info) is either a valid ipc_ns
14067@@ -278,6 +289,7 @@ static void mqueue_evict_inode(struct in 13734@@ -413,6 +424,7 @@ static void mqueue_evict_inode(struct in
14068 if (ipc_ns) 13735 if (ipc_ns)
14069 ipc_ns->mq_queues_count--; 13736 ipc_ns->mq_queues_count--;
14070 spin_unlock(&mq_lock); 13737 spin_unlock(&mq_lock);
@@ -14072,9 +13739,9 @@ diff -NurpP --minimal linux-3.4.57/ipc/mqueue.c linux-3.4.57-vs2.3.3.9/ipc/mqueu
14072 free_uid(user); 13739 free_uid(user);
14073 } 13740 }
14074 if (ipc_ns) 13741 if (ipc_ns)
14075diff -NurpP --minimal linux-3.4.57/ipc/msg.c linux-3.4.57-vs2.3.3.9/ipc/msg.c 13742diff -NurpP --minimal linux-3.10.17/ipc/msg.c linux-3.10.17-vs2.3.6.6/ipc/msg.c
14076--- linux-3.4.57/ipc/msg.c 2011-05-22 14:17:59.000000000 +0000 13743--- linux-3.10.17/ipc/msg.c 2013-10-25 15:17:44.000000000 +0000
14077+++ linux-3.4.57-vs2.3.3.9/ipc/msg.c 2012-05-21 16:15:05.000000000 +0000 13744+++ linux-3.10.17-vs2.3.6.6/ipc/msg.c 2013-10-26 18:03:17.000000000 +0000
14078@@ -37,6 +37,7 @@ 13745@@ -37,6 +37,7 @@
14079 #include <linux/rwsem.h> 13746 #include <linux/rwsem.h>
14080 #include <linux/nsproxy.h> 13747 #include <linux/nsproxy.h>
@@ -14083,7 +13750,7 @@ diff -NurpP --minimal linux-3.4.57/ipc/msg.c linux-3.4.57-vs2.3.3.9/ipc/msg.c
14083 13750
14084 #include <asm/current.h> 13751 #include <asm/current.h>
14085 #include <asm/uaccess.h> 13752 #include <asm/uaccess.h>
14086@@ -190,6 +191,7 @@ static int newque(struct ipc_namespace * 13753@@ -194,6 +195,7 @@ static int newque(struct ipc_namespace *
14087 13754
14088 msq->q_perm.mode = msgflg & S_IRWXUGO; 13755 msq->q_perm.mode = msgflg & S_IRWXUGO;
14089 msq->q_perm.key = key; 13756 msq->q_perm.key = key;
@@ -14091,52 +13758,9 @@ diff -NurpP --minimal linux-3.4.57/ipc/msg.c linux-3.4.57-vs2.3.3.9/ipc/msg.c
14091 13758
14092 msq->q_perm.security = NULL; 13759 msq->q_perm.security = NULL;
14093 retval = security_msg_queue_alloc(msq); 13760 retval = security_msg_queue_alloc(msq);
14094diff -NurpP --minimal linux-3.4.57/ipc/namespace.c linux-3.4.57-vs2.3.3.9/ipc/namespace.c 13761diff -NurpP --minimal linux-3.10.17/ipc/sem.c linux-3.10.17-vs2.3.6.6/ipc/sem.c
14095--- linux-3.4.57/ipc/namespace.c 2011-07-22 09:18:12.000000000 +0000 13762--- linux-3.10.17/ipc/sem.c 2013-10-25 15:17:44.000000000 +0000
14096+++ linux-3.4.57-vs2.3.3.9/ipc/namespace.c 2012-05-21 16:15:05.000000000 +0000 13763+++ linux-3.10.17-vs2.3.6.6/ipc/sem.c 2013-10-26 18:07:06.000000000 +0000
14097@@ -13,11 +13,12 @@
14098 #include <linux/mount.h>
14099 #include <linux/user_namespace.h>
14100 #include <linux/proc_fs.h>
14101+#include <linux/vs_base.h>
14102+#include <linux/vserver/global.h>
14103
14104 #include "util.h"
14105
14106-static struct ipc_namespace *create_ipc_ns(struct task_struct *tsk,
14107- struct ipc_namespace *old_ns)
14108+static struct ipc_namespace *create_ipc_ns(struct user_namespace *user_ns)
14109 {
14110 struct ipc_namespace *ns;
14111 int err;
14112@@ -46,19 +47,18 @@ static struct ipc_namespace *create_ipc_
14113 ipcns_notify(IPCNS_CREATED);
14114 register_ipcns_notifier(ns);
14115
14116- ns->user_ns = get_user_ns(task_cred_xxx(tsk, user)->user_ns);
14117+ ns->user_ns = get_user_ns(user_ns);
14118
14119 return ns;
14120 }
14121
14122 struct ipc_namespace *copy_ipcs(unsigned long flags,
14123- struct task_struct *tsk)
14124+ struct ipc_namespace *old_ns,
14125+ struct user_namespace *user_ns)
14126 {
14127- struct ipc_namespace *ns = tsk->nsproxy->ipc_ns;
14128-
14129 if (!(flags & CLONE_NEWIPC))
14130- return get_ipc_ns(ns);
14131- return create_ipc_ns(tsk, ns);
14132+ return get_ipc_ns(old_ns);
14133+ return create_ipc_ns(user_ns);
14134 }
14135
14136 /*
14137diff -NurpP --minimal linux-3.4.57/ipc/sem.c linux-3.4.57-vs2.3.3.9/ipc/sem.c
14138--- linux-3.4.57/ipc/sem.c 2012-01-09 15:14:59.000000000 +0000
14139+++ linux-3.4.57-vs2.3.3.9/ipc/sem.c 2012-05-21 16:15:05.000000000 +0000
14140@@ -86,6 +86,8 @@ 13764@@ -86,6 +86,8 @@
14141 #include <linux/rwsem.h> 13765 #include <linux/rwsem.h>
14142 #include <linux/nsproxy.h> 13766 #include <linux/nsproxy.h>
@@ -14146,7 +13770,7 @@ diff -NurpP --minimal linux-3.4.57/ipc/sem.c linux-3.4.57-vs2.3.3.9/ipc/sem.c
14146 13770
14147 #include <asm/uaccess.h> 13771 #include <asm/uaccess.h>
14148 #include "util.h" 13772 #include "util.h"
14149@@ -306,6 +308,7 @@ static int newary(struct ipc_namespace * 13773@@ -500,6 +502,7 @@ static int newary(struct ipc_namespace *
14150 13774
14151 sma->sem_perm.mode = (semflg & S_IRWXUGO); 13775 sma->sem_perm.mode = (semflg & S_IRWXUGO);
14152 sma->sem_perm.key = key; 13776 sma->sem_perm.key = key;
@@ -14154,7 +13778,7 @@ diff -NurpP --minimal linux-3.4.57/ipc/sem.c linux-3.4.57-vs2.3.3.9/ipc/sem.c
14154 13778
14155 sma->sem_perm.security = NULL; 13779 sma->sem_perm.security = NULL;
14156 retval = security_sem_alloc(sma); 13780 retval = security_sem_alloc(sma);
14157@@ -321,6 +324,9 @@ static int newary(struct ipc_namespace * 13781@@ -514,6 +517,9 @@ static int newary(struct ipc_namespace *
14158 return id; 13782 return id;
14159 } 13783 }
14160 ns->used_sems += nsems; 13784 ns->used_sems += nsems;
@@ -14164,20 +13788,20 @@ diff -NurpP --minimal linux-3.4.57/ipc/sem.c linux-3.4.57-vs2.3.3.9/ipc/sem.c
14164 13788
14165 sma->sem_base = (struct sem *) &sma[1]; 13789 sma->sem_base = (struct sem *) &sma[1];
14166 13790
14167@@ -770,6 +776,9 @@ static void freeary(struct ipc_namespace 13791@@ -1103,6 +1109,9 @@ static void freeary(struct ipc_namespace
14168 13792
14169 wake_up_sem_queue_do(&tasks); 13793 wake_up_sem_queue_do(&tasks);
14170 ns->used_sems -= sma->sem_nsems; 13794 ns->used_sems -= sma->sem_nsems;
14171+ /* FIXME: obsoleted? */ 13795+ /* FIXME: obsoleted? */
14172+ vx_nsems_sub(sma, sma->sem_nsems); 13796+ vx_nsems_sub(sma, sma->sem_nsems);
14173+ vx_semary_dec(sma); 13797+ vx_semary_dec(sma);
14174 security_sem_free(sma); 13798 ipc_rcu_putref(sma, sem_rcu_free);
14175 ipc_rcu_putref(sma);
14176 } 13799 }
14177diff -NurpP --minimal linux-3.4.57/ipc/shm.c linux-3.4.57-vs2.3.3.9/ipc/shm.c 13800
14178--- linux-3.4.57/ipc/shm.c 2013-08-13 14:13:36.000000000 +0000 13801diff -NurpP --minimal linux-3.10.17/ipc/shm.c linux-3.10.17-vs2.3.6.6/ipc/shm.c
14179+++ linux-3.4.57-vs2.3.3.9/ipc/shm.c 2013-07-14 13:38:36.000000000 +0000 13802--- linux-3.10.17/ipc/shm.c 2013-10-25 15:17:44.000000000 +0000
14180@@ -39,6 +39,8 @@ 13803+++ linux-3.10.17-vs2.3.6.6/ipc/shm.c 2013-10-26 18:05:26.000000000 +0000
13804@@ -42,6 +42,8 @@
14181 #include <linux/nsproxy.h> 13805 #include <linux/nsproxy.h>
14182 #include <linux/mount.h> 13806 #include <linux/mount.h>
14183 #include <linux/ipc_namespace.h> 13807 #include <linux/ipc_namespace.h>
@@ -14186,7 +13810,7 @@ diff -NurpP --minimal linux-3.4.57/ipc/shm.c linux-3.4.57-vs2.3.3.9/ipc/shm.c
14186 13810
14187 #include <asm/uaccess.h> 13811 #include <asm/uaccess.h>
14188 13812
14189@@ -187,7 +189,12 @@ static void shm_open(struct vm_area_stru 13813@@ -208,7 +210,12 @@ static void shm_open(struct vm_area_stru
14190 */ 13814 */
14191 static void shm_destroy(struct ipc_namespace *ns, struct shmid_kernel *shp) 13815 static void shm_destroy(struct ipc_namespace *ns, struct shmid_kernel *shp)
14192 { 13816 {
@@ -14200,15 +13824,15 @@ diff -NurpP --minimal linux-3.4.57/ipc/shm.c linux-3.4.57-vs2.3.3.9/ipc/shm.c
14200 shm_rmid(ns, shp); 13824 shm_rmid(ns, shp);
14201 shm_unlock(shp); 13825 shm_unlock(shp);
14202 if (!is_file_hugepages(shp->shm_file)) 13826 if (!is_file_hugepages(shp->shm_file))
14203@@ -197,6 +204,7 @@ static void shm_destroy(struct ipc_names 13827@@ -217,6 +224,7 @@ static void shm_destroy(struct ipc_names
13828 user_shm_unlock(file_inode(shp->shm_file)->i_size,
14204 shp->mlock_user); 13829 shp->mlock_user);
14205 fput (shp->shm_file); 13830 fput (shp->shm_file);
14206 security_shm_free(shp);
14207+ put_vx_info(vxi); 13831+ put_vx_info(vxi);
14208 ipc_rcu_putref(shp); 13832 ipc_rcu_putref(shp, shm_rcu_free);
14209 } 13833 }
14210 13834
14211@@ -462,11 +470,15 @@ static int newseg(struct ipc_namespace * 13835@@ -494,11 +502,15 @@ static int newseg(struct ipc_namespace *
14212 if (ns->shm_tot + numpages > ns->shm_ctlall) 13836 if (ns->shm_tot + numpages > ns->shm_ctlall)
14213 return -ENOSPC; 13837 return -ENOSPC;
14214 13838
@@ -14224,30 +13848,34 @@ diff -NurpP --minimal linux-3.4.57/ipc/shm.c linux-3.4.57-vs2.3.3.9/ipc/shm.c
14224 shp->shm_perm.mode = (shmflg & S_IRWXUGO); 13848 shp->shm_perm.mode = (shmflg & S_IRWXUGO);
14225 shp->mlock_user = NULL; 13849 shp->mlock_user = NULL;
14226 13850
14227@@ -523,6 +535,7 @@ static int newseg(struct ipc_namespace * 13851@@ -564,9 +576,10 @@ static int newseg(struct ipc_namespace *
13852
14228 ns->shm_tot += numpages; 13853 ns->shm_tot += numpages;
14229 error = shp->shm_perm.id; 13854 error = shp->shm_perm.id;
14230 shm_unlock(shp); 13855-
13856+ shm_unlock(shp);
13857 ipc_unlock_object(&shp->shm_perm);
13858 rcu_read_unlock();
14231+ vx_ipcshm_add(current_vx_info(), key, numpages); 13859+ vx_ipcshm_add(current_vx_info(), key, numpages);
14232 return error; 13860 return error;
14233 13861
14234 no_id: 13862 no_id:
14235diff -NurpP --minimal linux-3.4.57/kernel/Makefile linux-3.4.57-vs2.3.3.9/kernel/Makefile 13863diff -NurpP --minimal linux-3.10.17/kernel/Makefile linux-3.10.17-vs2.3.6.6/kernel/Makefile
14236--- linux-3.4.57/kernel/Makefile 2012-05-21 16:07:34.000000000 +0000 13864--- linux-3.10.17/kernel/Makefile 2013-07-14 17:01:34.000000000 +0000
14237+++ linux-3.4.57-vs2.3.3.9/kernel/Makefile 2012-05-21 16:15:05.000000000 +0000 13865+++ linux-3.10.17-vs2.3.6.6/kernel/Makefile 2013-08-22 21:18:32.000000000 +0000
14238@@ -25,6 +25,7 @@ endif 13866@@ -25,6 +25,7 @@ endif
14239 obj-y += sched/ 13867 obj-y += sched/
14240 obj-y += power/ 13868 obj-y += power/
14241 13869 obj-y += cpu/
14242+obj-y += vserver/ 13870+obj-y += vserver/
13871
13872 obj-$(CONFIG_CHECKPOINT_RESTORE) += kcmp.o
14243 obj-$(CONFIG_FREEZER) += freezer.o 13873 obj-$(CONFIG_FREEZER) += freezer.o
14244 obj-$(CONFIG_PROFILING) += profile.o 13874diff -NurpP --minimal linux-3.10.17/kernel/auditsc.c linux-3.10.17-vs2.3.6.6/kernel/auditsc.c
14245 obj-$(CONFIG_STACKTRACE) += stacktrace.o 13875--- linux-3.10.17/kernel/auditsc.c 2013-07-14 17:01:34.000000000 +0000
14246diff -NurpP --minimal linux-3.4.57/kernel/auditsc.c linux-3.4.57-vs2.3.3.9/kernel/auditsc.c 13876+++ linux-3.10.17-vs2.3.6.6/kernel/auditsc.c 2013-08-22 20:30:00.000000000 +0000
14247--- linux-3.4.57/kernel/auditsc.c 2012-03-19 18:47:29.000000000 +0000 13877@@ -1976,7 +1976,7 @@ int audit_set_loginuid(kuid_t loginuid)
14248+++ linux-3.4.57-vs2.3.3.9/kernel/auditsc.c 2012-05-21 16:15:05.000000000 +0000 13878 if (audit_loginuid_set(task))
14249@@ -2308,7 +2308,7 @@ int audit_set_loginuid(uid_t loginuid)
14250 if (task->loginuid != -1)
14251 return -EPERM; 13879 return -EPERM;
14252 #else /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */ 13880 #else /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */
14253- if (!capable(CAP_AUDIT_CONTROL)) 13881- if (!capable(CAP_AUDIT_CONTROL))
@@ -14255,9 +13883,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/auditsc.c linux-3.4.57-vs2.3.3.9/kerne
14255 return -EPERM; 13883 return -EPERM;
14256 #endif /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */ 13884 #endif /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */
14257 13885
14258diff -NurpP --minimal linux-3.4.57/kernel/capability.c linux-3.4.57-vs2.3.3.9/kernel/capability.c 13886diff -NurpP --minimal linux-3.10.17/kernel/capability.c linux-3.10.17-vs2.3.6.6/kernel/capability.c
14259--- linux-3.4.57/kernel/capability.c 2012-03-19 18:47:29.000000000 +0000 13887--- linux-3.10.17/kernel/capability.c 2013-05-31 13:45:29.000000000 +0000
14260+++ linux-3.4.57-vs2.3.3.9/kernel/capability.c 2012-05-21 16:15:05.000000000 +0000 13888+++ linux-3.10.17-vs2.3.6.6/kernel/capability.c 2013-08-22 20:30:00.000000000 +0000
14261@@ -15,6 +15,7 @@ 13889@@ -15,6 +15,7 @@
14262 #include <linux/syscalls.h> 13890 #include <linux/syscalls.h>
14263 #include <linux/pid_namespace.h> 13891 #include <linux/pid_namespace.h>
@@ -14283,10 +13911,18 @@ diff -NurpP --minimal linux-3.4.57/kernel/capability.c linux-3.4.57-vs2.3.3.9/ke
14283 /** 13911 /**
14284 * has_capability_noaudit - Does a task have a capability (unaudited) in the 13912 * has_capability_noaudit - Does a task have a capability (unaudited) in the
14285 * initial user ns 13913 * initial user ns
14286diff -NurpP --minimal linux-3.4.57/kernel/compat.c linux-3.4.57-vs2.3.3.9/kernel/compat.c 13914diff -NurpP --minimal linux-3.10.17/kernel/compat.c linux-3.10.17-vs2.3.6.6/kernel/compat.c
14287--- linux-3.4.57/kernel/compat.c 2012-05-21 16:07:34.000000000 +0000 13915--- linux-3.10.17/kernel/compat.c 2013-07-14 17:01:34.000000000 +0000
14288+++ linux-3.4.57-vs2.3.3.9/kernel/compat.c 2012-05-21 16:15:05.000000000 +0000 13916+++ linux-3.10.17-vs2.3.6.6/kernel/compat.c 2013-08-22 20:30:00.000000000 +0000
14289@@ -1054,7 +1054,7 @@ asmlinkage long compat_sys_stime(compat_ 13917@@ -27,6 +27,7 @@
13918 #include <linux/times.h>
13919 #include <linux/ptrace.h>
13920 #include <linux/gfp.h>
13921+#include <linux/vs_time.h>
13922
13923 #include <asm/uaccess.h>
13924
13925@@ -1040,7 +1041,7 @@ asmlinkage long compat_sys_stime(compat_
14290 if (err) 13926 if (err)
14291 return err; 13927 return err;
14292 13928
@@ -14295,11 +13931,11 @@ diff -NurpP --minimal linux-3.4.57/kernel/compat.c linux-3.4.57-vs2.3.3.9/kernel
14295 return 0; 13931 return 0;
14296 } 13932 }
14297 13933
14298diff -NurpP --minimal linux-3.4.57/kernel/cred.c linux-3.4.57-vs2.3.3.9/kernel/cred.c 13934diff -NurpP --minimal linux-3.10.17/kernel/cred.c linux-3.10.17-vs2.3.6.6/kernel/cred.c
14299--- linux-3.4.57/kernel/cred.c 2012-05-21 16:07:34.000000000 +0000 13935--- linux-3.10.17/kernel/cred.c 2013-02-19 13:58:56.000000000 +0000
14300+++ linux-3.4.57-vs2.3.3.9/kernel/cred.c 2012-05-21 16:15:05.000000000 +0000 13936+++ linux-3.10.17-vs2.3.6.6/kernel/cred.c 2013-08-22 20:30:00.000000000 +0000
14301@@ -62,31 +62,6 @@ struct cred init_cred = { 13937@@ -56,31 +56,6 @@ struct cred init_cred = {
14302 #endif 13938 .group_info = &init_groups,
14303 }; 13939 };
14304 13940
14305-static inline void set_cred_subscribers(struct cred *cred, int n) 13941-static inline void set_cred_subscribers(struct cred *cred, int n)
@@ -14328,9 +13964,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/cred.c linux-3.4.57-vs2.3.3.9/kernel/c
14328-} 13964-}
14329- 13965-
14330 /* 13966 /*
14331 * Dispose of the shared task group credentials 13967 * The RCU callback to actually dispose of a set of credentials
14332 */ 13968 */
14333@@ -282,21 +257,16 @@ error: 13969@@ -232,21 +207,16 @@ error:
14334 * 13970 *
14335 * Call commit_creds() or abort_creds() to clean up. 13971 * Call commit_creds() or abort_creds() to clean up.
14336 */ 13972 */
@@ -14353,7 +13989,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/cred.c linux-3.4.57-vs2.3.3.9/kernel/c
14353 memcpy(new, old, sizeof(struct cred)); 13989 memcpy(new, old, sizeof(struct cred));
14354 13990
14355 atomic_set(&new->usage, 1); 13991 atomic_set(&new->usage, 1);
14356@@ -323,6 +293,13 @@ error: 13992@@ -275,6 +245,13 @@ error:
14357 abort_creds(new); 13993 abort_creds(new);
14358 return NULL; 13994 return NULL;
14359 } 13995 }
@@ -14367,9 +14003,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/cred.c linux-3.4.57-vs2.3.3.9/kernel/c
14367 EXPORT_SYMBOL(prepare_creds); 14003 EXPORT_SYMBOL(prepare_creds);
14368 14004
14369 /* 14005 /*
14370diff -NurpP --minimal linux-3.4.57/kernel/exit.c linux-3.4.57-vs2.3.3.9/kernel/exit.c 14006diff -NurpP --minimal linux-3.10.17/kernel/exit.c linux-3.10.17-vs2.3.6.6/kernel/exit.c
14371--- linux-3.4.57/kernel/exit.c 2013-08-13 14:13:37.000000000 +0000 14007--- linux-3.10.17/kernel/exit.c 2013-07-14 17:01:35.000000000 +0000
14372+++ linux-3.4.57-vs2.3.3.9/kernel/exit.c 2012-12-08 00:54:06.000000000 +0000 14008+++ linux-3.10.17-vs2.3.6.6/kernel/exit.c 2013-08-22 20:30:00.000000000 +0000
14373@@ -48,6 +48,10 @@ 14009@@ -48,6 +48,10 @@
14374 #include <linux/fs_struct.h> 14010 #include <linux/fs_struct.h>
14375 #include <linux/init_task.h> 14011 #include <linux/init_task.h>
@@ -14381,19 +14017,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/exit.c linux-3.4.57-vs2.3.3.9/kernel/e
14381 #include <trace/events/sched.h> 14017 #include <trace/events/sched.h>
14382 #include <linux/hw_breakpoint.h> 14018 #include <linux/hw_breakpoint.h>
14383 #include <linux/oom.h> 14019 #include <linux/oom.h>
14384@@ -482,9 +486,11 @@ static void close_files(struct files_str 14020@@ -514,15 +518,25 @@ static struct task_struct *find_new_reap
14385 filp_close(file, files);
14386 cond_resched();
14387 }
14388+ vx_openfd_dec(i);
14389 }
14390 i++;
14391 set >>= 1;
14392+ cond_resched();
14393 }
14394 }
14395 }
14396@@ -699,15 +705,25 @@ static struct task_struct *find_new_reap
14397 __acquires(&tasklist_lock) 14021 __acquires(&tasklist_lock)
14398 { 14022 {
14399 struct pid_namespace *pid_ns = task_active_pid_ns(father); 14023 struct pid_namespace *pid_ns = task_active_pid_ns(father);
@@ -14422,7 +14046,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/exit.c linux-3.4.57-vs2.3.3.9/kernel/e
14422 } 14046 }
14423 14047
14424 if (unlikely(pid_ns->child_reaper == father)) { 14048 if (unlikely(pid_ns->child_reaper == father)) {
14425@@ -751,7 +767,9 @@ static struct task_struct *find_new_reap 14049@@ -560,7 +574,9 @@ static struct task_struct *find_new_reap
14426 } 14050 }
14427 } 14051 }
14428 14052
@@ -14433,7 +14057,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/exit.c linux-3.4.57-vs2.3.3.9/kernel/e
14433 } 14057 }
14434 14058
14435 /* 14059 /*
14436@@ -802,10 +820,15 @@ static void forget_original_parent(struc 14060@@ -611,10 +627,15 @@ static void forget_original_parent(struc
14437 list_for_each_entry_safe(p, n, &father->children, sibling) { 14061 list_for_each_entry_safe(p, n, &father->children, sibling) {
14438 struct task_struct *t = p; 14062 struct task_struct *t = p;
14439 do { 14063 do {
@@ -14451,7 +14075,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/exit.c linux-3.4.57-vs2.3.3.9/kernel/e
14451 } 14075 }
14452 if (t->pdeath_signal) 14076 if (t->pdeath_signal)
14453 group_send_sig_info(t->pdeath_signal, 14077 group_send_sig_info(t->pdeath_signal,
14454@@ -1013,6 +1036,9 @@ void do_exit(long code) 14078@@ -821,6 +842,9 @@ void do_exit(long code)
14455 */ 14079 */
14456 ptrace_put_breakpoints(tsk); 14080 ptrace_put_breakpoints(tsk);
14457 14081
@@ -14461,7 +14085,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/exit.c linux-3.4.57-vs2.3.3.9/kernel/e
14461 exit_notify(tsk, group_dead); 14085 exit_notify(tsk, group_dead);
14462 #ifdef CONFIG_NUMA 14086 #ifdef CONFIG_NUMA
14463 task_lock(tsk); 14087 task_lock(tsk);
14464@@ -1063,10 +1089,15 @@ void do_exit(long code) 14088@@ -874,10 +898,15 @@ void do_exit(long code)
14465 smp_mb(); 14089 smp_mb();
14466 raw_spin_unlock_wait(&tsk->pi_lock); 14090 raw_spin_unlock_wait(&tsk->pi_lock);
14467 14091
@@ -14477,29 +14101,29 @@ diff -NurpP --minimal linux-3.4.57/kernel/exit.c linux-3.4.57-vs2.3.3.9/kernel/e
14477 BUG(); 14101 BUG();
14478 /* Avoid "noreturn function does return". */ 14102 /* Avoid "noreturn function does return". */
14479 for (;;) 14103 for (;;)
14480diff -NurpP --minimal linux-3.4.57/kernel/fork.c linux-3.4.57-vs2.3.3.9/kernel/fork.c 14104diff -NurpP --minimal linux-3.10.17/kernel/fork.c linux-3.10.17-vs2.3.6.6/kernel/fork.c
14481--- linux-3.4.57/kernel/fork.c 2013-08-13 14:13:37.000000000 +0000 14105--- linux-3.10.17/kernel/fork.c 2013-10-25 15:17:44.000000000 +0000
14482+++ linux-3.4.57-vs2.3.3.9/kernel/fork.c 2012-06-28 14:45:07.000000000 +0000 14106+++ linux-3.10.17-vs2.3.6.6/kernel/fork.c 2013-10-09 17:37:22.000000000 +0000
14483@@ -68,6 +68,9 @@ 14107@@ -71,6 +71,9 @@
14484 #include <linux/oom.h>
14485 #include <linux/khugepaged.h>
14486 #include <linux/signalfd.h> 14108 #include <linux/signalfd.h>
14109 #include <linux/uprobes.h>
14110 #include <linux/aio.h>
14487+#include <linux/vs_context.h> 14111+#include <linux/vs_context.h>
14488+#include <linux/vs_network.h> 14112+#include <linux/vs_network.h>
14489+#include <linux/vs_limit.h> 14113+#include <linux/vs_limit.h>
14490 14114
14491 #include <asm/pgtable.h> 14115 #include <asm/pgtable.h>
14492 #include <asm/pgalloc.h> 14116 #include <asm/pgalloc.h>
14493@@ -170,6 +173,8 @@ void free_task(struct task_struct *tsk) 14117@@ -211,6 +214,8 @@ void free_task(struct task_struct *tsk)
14494 account_kernel_stack(tsk->stack, -1); 14118 arch_release_thread_info(tsk->stack);
14495 free_thread_info(tsk->stack); 14119 free_thread_info(tsk->stack);
14496 rt_mutex_debug_task_free(tsk); 14120 rt_mutex_debug_task_free(tsk);
14497+ clr_vx_info(&tsk->vx_info); 14121+ clr_vx_info(&tsk->vx_info);
14498+ clr_nx_info(&tsk->nx_info); 14122+ clr_nx_info(&tsk->nx_info);
14499 ftrace_graph_exit_task(tsk); 14123 ftrace_graph_exit_task(tsk);
14500 free_task_struct(tsk); 14124 put_seccomp_filter(tsk);
14501 } 14125 arch_release_task_struct(tsk);
14502@@ -507,6 +512,7 @@ static struct mm_struct *mm_init(struct 14126@@ -548,6 +553,7 @@ static struct mm_struct *mm_init(struct
14503 if (likely(!mm_alloc_pgd(mm))) { 14127 if (likely(!mm_alloc_pgd(mm))) {
14504 mm->def_flags = 0; 14128 mm->def_flags = 0;
14505 mmu_notifier_mm_init(mm); 14129 mmu_notifier_mm_init(mm);
@@ -14507,7 +14131,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/fork.c linux-3.4.57-vs2.3.3.9/kernel/f
14507 return mm; 14131 return mm;
14508 } 14132 }
14509 14133
14510@@ -559,6 +565,7 @@ void __mmdrop(struct mm_struct *mm) 14134@@ -600,6 +606,7 @@ void __mmdrop(struct mm_struct *mm)
14511 destroy_context(mm); 14135 destroy_context(mm);
14512 mmu_notifier_mm_destroy(mm); 14136 mmu_notifier_mm_destroy(mm);
14513 check_mm(mm); 14137 check_mm(mm);
@@ -14515,15 +14139,15 @@ diff -NurpP --minimal linux-3.4.57/kernel/fork.c linux-3.4.57-vs2.3.3.9/kernel/f
14515 free_mm(mm); 14139 free_mm(mm);
14516 } 14140 }
14517 EXPORT_SYMBOL_GPL(__mmdrop); 14141 EXPORT_SYMBOL_GPL(__mmdrop);
14518@@ -794,6 +801,7 @@ struct mm_struct *dup_mm(struct task_str 14142@@ -819,6 +826,7 @@ struct mm_struct *dup_mm(struct task_str
14519 goto fail_nomem; 14143 goto fail_nomem;
14520 14144
14521 memcpy(mm, oldmm, sizeof(*mm)); 14145 memcpy(mm, oldmm, sizeof(*mm));
14522+ mm->mm_vx_info = NULL; 14146+ mm->mm_vx_info = NULL;
14523 mm_init_cpumask(mm); 14147 mm_init_cpumask(mm);
14524 14148
14525 /* Initializing for Swap token stuff */ 14149 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
14526@@ -837,6 +845,7 @@ fail_nocontext: 14150@@ -860,6 +868,7 @@ fail_nocontext:
14527 * If init_new_context() failed, we cannot use mmput() to free the mm 14151 * If init_new_context() failed, we cannot use mmput() to free the mm
14528 * because it calls destroy_context() 14152 * because it calls destroy_context()
14529 */ 14153 */
@@ -14531,16 +14155,16 @@ diff -NurpP --minimal linux-3.4.57/kernel/fork.c linux-3.4.57-vs2.3.3.9/kernel/f
14531 mm_free_pgd(mm); 14155 mm_free_pgd(mm);
14532 free_mm(mm); 14156 free_mm(mm);
14533 return NULL; 14157 return NULL;
14534@@ -1125,6 +1134,8 @@ static struct task_struct *copy_process( 14158@@ -1138,6 +1147,8 @@ static struct task_struct *copy_process(
14159 {
14535 int retval; 14160 int retval;
14536 struct task_struct *p; 14161 struct task_struct *p;
14537 int cgroup_callbacks_done = 0;
14538+ struct vx_info *vxi; 14162+ struct vx_info *vxi;
14539+ struct nx_info *nxi; 14163+ struct nx_info *nxi;
14540 14164
14541 if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS)) 14165 if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS))
14542 return ERR_PTR(-EINVAL); 14166 return ERR_PTR(-EINVAL);
14543@@ -1171,7 +1182,12 @@ static struct task_struct *copy_process( 14167@@ -1197,7 +1208,12 @@ static struct task_struct *copy_process(
14544 DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled); 14168 DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
14545 DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled); 14169 DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
14546 #endif 14170 #endif
@@ -14553,7 +14177,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/fork.c linux-3.4.57-vs2.3.3.9/kernel/f
14553 if (atomic_read(&p->real_cred->user->processes) >= 14177 if (atomic_read(&p->real_cred->user->processes) >=
14554 task_rlimit(p, RLIMIT_NPROC)) { 14178 task_rlimit(p, RLIMIT_NPROC)) {
14555 if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) && 14179 if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) &&
14556@@ -1448,6 +1464,18 @@ static struct task_struct *copy_process( 14180@@ -1478,6 +1494,18 @@ static struct task_struct *copy_process(
14557 14181
14558 total_forks++; 14182 total_forks++;
14559 spin_unlock(&current->sighand->siglock); 14183 spin_unlock(&current->sighand->siglock);
@@ -14572,20 +14196,20 @@ diff -NurpP --minimal linux-3.4.57/kernel/fork.c linux-3.4.57-vs2.3.3.9/kernel/f
14572 write_unlock_irq(&tasklist_lock); 14196 write_unlock_irq(&tasklist_lock);
14573 proc_fork_connector(p); 14197 proc_fork_connector(p);
14574 cgroup_post_fork(p); 14198 cgroup_post_fork(p);
14575diff -NurpP --minimal linux-3.4.57/kernel/kthread.c linux-3.4.57-vs2.3.3.9/kernel/kthread.c 14199diff -NurpP --minimal linux-3.10.17/kernel/kthread.c linux-3.10.17-vs2.3.6.6/kernel/kthread.c
14576--- linux-3.4.57/kernel/kthread.c 2013-08-13 14:13:40.000000000 +0000 14200--- linux-3.10.17/kernel/kthread.c 2013-07-14 17:01:35.000000000 +0000
14577+++ linux-3.4.57-vs2.3.3.9/kernel/kthread.c 2012-10-22 13:09:53.000000000 +0000 14201+++ linux-3.10.17-vs2.3.6.6/kernel/kthread.c 2013-08-22 21:14:28.000000000 +0000
14578@@ -16,6 +16,7 @@ 14202@@ -18,6 +18,7 @@
14579 #include <linux/mutex.h>
14580 #include <linux/slab.h>
14581 #include <linux/freezer.h> 14203 #include <linux/freezer.h>
14204 #include <linux/ptrace.h>
14205 #include <linux/uaccess.h>
14582+#include <linux/vs_pid.h> 14206+#include <linux/vs_pid.h>
14583 #include <trace/events/sched.h> 14207 #include <trace/events/sched.h>
14584 14208
14585 static DEFINE_SPINLOCK(kthread_create_lock); 14209 static DEFINE_SPINLOCK(kthread_create_lock);
14586diff -NurpP --minimal linux-3.4.57/kernel/nsproxy.c linux-3.4.57-vs2.3.3.9/kernel/nsproxy.c 14210diff -NurpP --minimal linux-3.10.17/kernel/nsproxy.c linux-3.10.17-vs2.3.6.6/kernel/nsproxy.c
14587--- linux-3.4.57/kernel/nsproxy.c 2012-01-09 15:15:00.000000000 +0000 14211--- linux-3.10.17/kernel/nsproxy.c 2013-07-14 17:01:35.000000000 +0000
14588+++ linux-3.4.57-vs2.3.3.9/kernel/nsproxy.c 2012-05-21 16:15:05.000000000 +0000 14212+++ linux-3.10.17-vs2.3.6.6/kernel/nsproxy.c 2013-08-22 21:09:55.000000000 +0000
14589@@ -20,11 +20,14 @@ 14213@@ -20,11 +20,14 @@
14590 #include <linux/mnt_namespace.h> 14214 #include <linux/mnt_namespace.h>
14591 #include <linux/utsname.h> 14215 #include <linux/utsname.h>
@@ -14594,7 +14218,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/nsproxy.c linux-3.4.57-vs2.3.3.9/kerne
14594+#include <linux/vserver/debug.h> 14218+#include <linux/vserver/debug.h>
14595 #include <net/net_namespace.h> 14219 #include <net/net_namespace.h>
14596 #include <linux/ipc_namespace.h> 14220 #include <linux/ipc_namespace.h>
14597 #include <linux/proc_fs.h> 14221 #include <linux/proc_ns.h>
14598 #include <linux/file.h> 14222 #include <linux/file.h>
14599 #include <linux/syscalls.h> 14223 #include <linux/syscalls.h>
14600+#include "../fs/mount.h" 14224+#include "../fs/mount.h"
@@ -14614,67 +14238,70 @@ diff -NurpP --minimal linux-3.4.57/kernel/nsproxy.c linux-3.4.57-vs2.3.3.9/kerne
14614 return nsproxy; 14238 return nsproxy;
14615 } 14239 }
14616 14240
14617@@ -56,8 +62,11 @@ static inline struct nsproxy *create_nsp 14241@@ -56,9 +62,12 @@ static inline struct nsproxy *create_nsp
14618 * Return the newly created nsproxy. Do not attach this to the task, 14242 * Return the newly created nsproxy. Do not attach this to the task,
14619 * leave it to the caller to do proper locking and attach it to task. 14243 * leave it to the caller to do proper locking and attach it to task.
14620 */ 14244 */
14621-static struct nsproxy *create_new_namespaces(unsigned long flags, 14245-static struct nsproxy *create_new_namespaces(unsigned long flags,
14622- struct task_struct *tsk, struct fs_struct *new_fs) 14246- struct task_struct *tsk, struct user_namespace *user_ns,
14623+static struct nsproxy *unshare_namespaces(unsigned long flags, 14247- struct fs_struct *new_fs)
14624+ struct nsproxy *orig, 14248+static struct nsproxy *unshare_namespaces(
14625+ struct fs_struct *new_fs, 14249+ unsigned long flags,
14626+ struct user_namespace *new_user, 14250+ struct nsproxy *orig,
14627+ struct pid_namespace *new_pid) 14251+ struct fs_struct *new_fs,
14252+ struct user_namespace *new_user,
14253+ struct pid_namespace *new_pid)
14628 { 14254 {
14629 struct nsproxy *new_nsp; 14255 struct nsproxy *new_nsp;
14630 int err; 14256 int err;
14631@@ -66,31 +75,31 @@ static struct nsproxy *create_new_namesp 14257@@ -67,31 +76,31 @@ static struct nsproxy *create_new_namesp
14632 if (!new_nsp) 14258 if (!new_nsp)
14633 return ERR_PTR(-ENOMEM); 14259 return ERR_PTR(-ENOMEM);
14634 14260
14635- new_nsp->mnt_ns = copy_mnt_ns(flags, tsk->nsproxy->mnt_ns, new_fs); 14261- new_nsp->mnt_ns = copy_mnt_ns(flags, tsk->nsproxy->mnt_ns, user_ns, new_fs);
14636+ new_nsp->mnt_ns = copy_mnt_ns(flags, orig->mnt_ns, new_fs); 14262+ new_nsp->mnt_ns = copy_mnt_ns(flags, orig->mnt_ns, new_user, new_fs);
14637 if (IS_ERR(new_nsp->mnt_ns)) { 14263 if (IS_ERR(new_nsp->mnt_ns)) {
14638 err = PTR_ERR(new_nsp->mnt_ns); 14264 err = PTR_ERR(new_nsp->mnt_ns);
14639 goto out_ns; 14265 goto out_ns;
14640 } 14266 }
14641 14267
14642- new_nsp->uts_ns = copy_utsname(flags, tsk); 14268- new_nsp->uts_ns = copy_utsname(flags, user_ns, tsk->nsproxy->uts_ns);
14643+ new_nsp->uts_ns = copy_utsname(flags, orig->uts_ns, new_user); 14269+ new_nsp->uts_ns = copy_utsname(flags, new_user, orig->uts_ns);
14644 if (IS_ERR(new_nsp->uts_ns)) { 14270 if (IS_ERR(new_nsp->uts_ns)) {
14645 err = PTR_ERR(new_nsp->uts_ns); 14271 err = PTR_ERR(new_nsp->uts_ns);
14646 goto out_uts; 14272 goto out_uts;
14647 } 14273 }
14648 14274
14649- new_nsp->ipc_ns = copy_ipcs(flags, tsk); 14275- new_nsp->ipc_ns = copy_ipcs(flags, user_ns, tsk->nsproxy->ipc_ns);
14650+ new_nsp->ipc_ns = copy_ipcs(flags, orig->ipc_ns, new_user); 14276+ new_nsp->ipc_ns = copy_ipcs(flags, new_user, orig->ipc_ns);
14651 if (IS_ERR(new_nsp->ipc_ns)) { 14277 if (IS_ERR(new_nsp->ipc_ns)) {
14652 err = PTR_ERR(new_nsp->ipc_ns); 14278 err = PTR_ERR(new_nsp->ipc_ns);
14653 goto out_ipc; 14279 goto out_ipc;
14654 } 14280 }
14655 14281
14656- new_nsp->pid_ns = copy_pid_ns(flags, task_active_pid_ns(tsk)); 14282- new_nsp->pid_ns = copy_pid_ns(flags, user_ns, tsk->nsproxy->pid_ns);
14657+ new_nsp->pid_ns = copy_pid_ns(flags, new_pid); 14283+ new_nsp->pid_ns = copy_pid_ns(flags, new_user, new_pid);
14658 if (IS_ERR(new_nsp->pid_ns)) { 14284 if (IS_ERR(new_nsp->pid_ns)) {
14659 err = PTR_ERR(new_nsp->pid_ns); 14285 err = PTR_ERR(new_nsp->pid_ns);
14660 goto out_pid; 14286 goto out_pid;
14661 } 14287 }
14662 14288
14663- new_nsp->net_ns = copy_net_ns(flags, tsk->nsproxy->net_ns); 14289- new_nsp->net_ns = copy_net_ns(flags, user_ns, tsk->nsproxy->net_ns);
14664+ new_nsp->net_ns = copy_net_ns(flags, orig->net_ns); 14290+ new_nsp->net_ns = copy_net_ns(flags, new_user, orig->net_ns);
14665 if (IS_ERR(new_nsp->net_ns)) { 14291 if (IS_ERR(new_nsp->net_ns)) {
14666 err = PTR_ERR(new_nsp->net_ns); 14292 err = PTR_ERR(new_nsp->net_ns);
14667 goto out_net; 14293 goto out_net;
14668@@ -115,6 +124,40 @@ out_ns: 14294@@ -116,6 +125,41 @@ out_ns:
14669 return ERR_PTR(err); 14295 return ERR_PTR(err);
14670 } 14296 }
14671 14297
14672+static struct nsproxy *create_new_namespaces(unsigned long flags, 14298+static struct nsproxy *create_new_namespaces(unsigned long flags,
14673+ struct task_struct *tsk, struct fs_struct *new_fs) 14299+ struct task_struct *tsk, struct user_namespace *user_ns,
14300+ struct fs_struct *new_fs)
14301+
14674+{ 14302+{
14675+ return unshare_namespaces(flags, tsk->nsproxy, 14303+ return unshare_namespaces(flags, tsk->nsproxy,
14676+ new_fs, task_cred_xxx(tsk, user)->user_ns, 14304+ new_fs, user_ns, task_active_pid_ns(tsk));
14677+ task_active_pid_ns(tsk));
14678+} 14305+}
14679+ 14306+
14680+/* 14307+/*
@@ -14706,10 +14333,10 @@ diff -NurpP --minimal linux-3.4.57/kernel/nsproxy.c linux-3.4.57-vs2.3.3.9/kerne
14706 /* 14333 /*
14707 * called from clone. This now handles copy for nsproxy and all 14334 * called from clone. This now handles copy for nsproxy and all
14708 * namespaces therein. 14335 * namespaces therein.
14709@@ -122,9 +165,12 @@ out_ns: 14336@@ -124,9 +168,12 @@ int copy_namespaces(unsigned long flags,
14710 int copy_namespaces(unsigned long flags, struct task_struct *tsk)
14711 { 14337 {
14712 struct nsproxy *old_ns = tsk->nsproxy; 14338 struct nsproxy *old_ns = tsk->nsproxy;
14339 struct user_namespace *user_ns = task_cred_xxx(tsk, user_ns);
14713- struct nsproxy *new_ns; 14340- struct nsproxy *new_ns;
14714+ struct nsproxy *new_ns = NULL; 14341+ struct nsproxy *new_ns = NULL;
14715 int err = 0; 14342 int err = 0;
@@ -14720,16 +14347,16 @@ diff -NurpP --minimal linux-3.4.57/kernel/nsproxy.c linux-3.4.57-vs2.3.3.9/kerne
14720 if (!old_ns) 14347 if (!old_ns)
14721 return 0; 14348 return 0;
14722 14349
14723@@ -134,7 +180,7 @@ int copy_namespaces(unsigned long flags, 14350@@ -136,7 +183,7 @@ int copy_namespaces(unsigned long flags,
14724 CLONE_NEWPID | CLONE_NEWNET))) 14351 CLONE_NEWPID | CLONE_NEWNET)))
14725 return 0; 14352 return 0;
14726 14353
14727- if (!capable(CAP_SYS_ADMIN)) { 14354- if (!ns_capable(user_ns, CAP_SYS_ADMIN)) {
14728+ if (!vx_can_unshare(CAP_SYS_ADMIN, flags)) { 14355+ if (!vx_ns_can_unshare(user_ns, CAP_SYS_ADMIN, flags)) {
14729 err = -EPERM; 14356 err = -EPERM;
14730 goto out; 14357 goto out;
14731 } 14358 }
14732@@ -161,6 +207,9 @@ int copy_namespaces(unsigned long flags, 14359@@ -163,6 +210,9 @@ int copy_namespaces(unsigned long flags,
14733 14360
14734 out: 14361 out:
14735 put_nsproxy(old_ns); 14362 put_nsproxy(old_ns);
@@ -14739,7 +14366,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/nsproxy.c linux-3.4.57-vs2.3.3.9/kerne
14739 return err; 14366 return err;
14740 } 14367 }
14741 14368
14742@@ -174,7 +223,9 @@ void free_nsproxy(struct nsproxy *ns) 14369@@ -176,7 +226,9 @@ void free_nsproxy(struct nsproxy *ns)
14743 put_ipc_ns(ns->ipc_ns); 14370 put_ipc_ns(ns->ipc_ns);
14744 if (ns->pid_ns) 14371 if (ns->pid_ns)
14745 put_pid_ns(ns->pid_ns); 14372 put_pid_ns(ns->pid_ns);
@@ -14750,8 +14377,8 @@ diff -NurpP --minimal linux-3.4.57/kernel/nsproxy.c linux-3.4.57-vs2.3.3.9/kerne
14750 kmem_cache_free(nsproxy_cachep, ns); 14377 kmem_cache_free(nsproxy_cachep, ns);
14751 } 14378 }
14752 14379
14753@@ -187,11 +238,15 @@ int unshare_nsproxy_namespaces(unsigned 14380@@ -190,12 +242,16 @@ int unshare_nsproxy_namespaces(unsigned
14754 { 14381 struct user_namespace *user_ns;
14755 int err = 0; 14382 int err = 0;
14756 14383
14757+ vxdprintk(VXD_CBIT(space, 4), 14384+ vxdprintk(VXD_CBIT(space, 4),
@@ -14759,35 +14386,36 @@ diff -NurpP --minimal linux-3.4.57/kernel/nsproxy.c linux-3.4.57-vs2.3.3.9/kerne
14759+ unshare_flags, current->nsproxy); 14386+ unshare_flags, current->nsproxy);
14760+ 14387+
14761 if (!(unshare_flags & (CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC | 14388 if (!(unshare_flags & (CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC |
14762 CLONE_NEWNET))) 14389 CLONE_NEWNET | CLONE_NEWPID)))
14763 return 0; 14390 return 0;
14764 14391
14765- if (!capable(CAP_SYS_ADMIN)) 14392 user_ns = new_cred ? new_cred->user_ns : current_user_ns();
14766+ if (!vx_can_unshare(CAP_SYS_ADMIN, unshare_flags)) 14393- if (!ns_capable(user_ns, CAP_SYS_ADMIN))
14394+ if (!vx_ns_can_unshare(user_ns, CAP_SYS_ADMIN, unshare_flags))
14767 return -EPERM; 14395 return -EPERM;
14768 14396
14769 *new_nsp = create_new_namespaces(unshare_flags, current, 14397 *new_nsp = create_new_namespaces(unshare_flags, current, user_ns,
14770diff -NurpP --minimal linux-3.4.57/kernel/pid.c linux-3.4.57-vs2.3.3.9/kernel/pid.c 14398diff -NurpP --minimal linux-3.10.17/kernel/pid.c linux-3.10.17-vs2.3.6.6/kernel/pid.c
14771--- linux-3.4.57/kernel/pid.c 2012-03-19 18:47:30.000000000 +0000 14399--- linux-3.10.17/kernel/pid.c 2013-10-25 15:17:44.000000000 +0000
14772+++ linux-3.4.57-vs2.3.3.9/kernel/pid.c 2012-05-21 16:15:05.000000000 +0000 14400+++ linux-3.10.17-vs2.3.6.6/kernel/pid.c 2013-10-09 17:37:22.000000000 +0000
14773@@ -36,6 +36,7 @@ 14401@@ -38,6 +38,7 @@
14774 #include <linux/pid_namespace.h>
14775 #include <linux/init_task.h>
14776 #include <linux/syscalls.h> 14402 #include <linux/syscalls.h>
14403 #include <linux/proc_ns.h>
14404 #include <linux/proc_fs.h>
14777+#include <linux/vs_pid.h> 14405+#include <linux/vs_pid.h>
14778 14406
14779 #define pid_hashfn(nr, ns) \ 14407 #define pid_hashfn(nr, ns) \
14780 hash_long((unsigned long)nr + (unsigned long)ns, pidhash_shift) 14408 hash_long((unsigned long)nr + (unsigned long)ns, pidhash_shift)
14781@@ -344,7 +345,7 @@ EXPORT_SYMBOL_GPL(find_pid_ns); 14409@@ -367,7 +368,7 @@ EXPORT_SYMBOL_GPL(find_pid_ns);
14782 14410
14783 struct pid *find_vpid(int nr) 14411 struct pid *find_vpid(int nr)
14784 { 14412 {
14785- return find_pid_ns(nr, current->nsproxy->pid_ns); 14413- return find_pid_ns(nr, task_active_pid_ns(current));
14786+ return find_pid_ns(vx_rmap_pid(nr), current->nsproxy->pid_ns); 14414+ return find_pid_ns(vx_rmap_pid(nr), task_active_pid_ns(current));
14787 } 14415 }
14788 EXPORT_SYMBOL_GPL(find_vpid); 14416 EXPORT_SYMBOL_GPL(find_vpid);
14789 14417
14790@@ -404,6 +405,9 @@ void transfer_pid(struct task_struct *ol 14418@@ -427,6 +428,9 @@ void transfer_pid(struct task_struct *ol
14791 struct task_struct *pid_task(struct pid *pid, enum pid_type type) 14419 struct task_struct *pid_task(struct pid *pid, enum pid_type type)
14792 { 14420 {
14793 struct task_struct *result = NULL; 14421 struct task_struct *result = NULL;
@@ -14797,7 +14425,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/pid.c linux-3.4.57-vs2.3.3.9/kernel/pi
14797 if (pid) { 14425 if (pid) {
14798 struct hlist_node *first; 14426 struct hlist_node *first;
14799 first = rcu_dereference_check(hlist_first_rcu(&pid->tasks[type]), 14427 first = rcu_dereference_check(hlist_first_rcu(&pid->tasks[type]),
14800@@ -423,7 +427,7 @@ struct task_struct *find_task_by_pid_ns( 14428@@ -446,7 +450,7 @@ struct task_struct *find_task_by_pid_ns(
14801 rcu_lockdep_assert(rcu_read_lock_held(), 14429 rcu_lockdep_assert(rcu_read_lock_held(),
14802 "find_task_by_pid_ns() needs rcu_read_lock()" 14430 "find_task_by_pid_ns() needs rcu_read_lock()"
14803 " protection"); 14431 " protection");
@@ -14806,7 +14434,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/pid.c linux-3.4.57-vs2.3.3.9/kernel/pi
14806 } 14434 }
14807 14435
14808 struct task_struct *find_task_by_vpid(pid_t vnr) 14436 struct task_struct *find_task_by_vpid(pid_t vnr)
14809@@ -467,7 +471,7 @@ struct pid *find_get_pid(pid_t nr) 14437@@ -490,7 +494,7 @@ struct pid *find_get_pid(pid_t nr)
14810 } 14438 }
14811 EXPORT_SYMBOL_GPL(find_get_pid); 14439 EXPORT_SYMBOL_GPL(find_get_pid);
14812 14440
@@ -14815,9 +14443,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/pid.c linux-3.4.57-vs2.3.3.9/kernel/pi
14815 { 14443 {
14816 struct upid *upid; 14444 struct upid *upid;
14817 pid_t nr = 0; 14445 pid_t nr = 0;
14818@@ -480,6 +484,11 @@ pid_t pid_nr_ns(struct pid *pid, struct 14446@@ -504,6 +508,11 @@ pid_t pid_nr_ns(struct pid *pid, struct
14819 return nr;
14820 } 14447 }
14448 EXPORT_SYMBOL_GPL(pid_nr_ns);
14821 14449
14822+pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns) 14450+pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns)
14823+{ 14451+{
@@ -14826,46 +14454,46 @@ diff -NurpP --minimal linux-3.4.57/kernel/pid.c linux-3.4.57-vs2.3.3.9/kernel/pi
14826+ 14454+
14827 pid_t pid_vnr(struct pid *pid) 14455 pid_t pid_vnr(struct pid *pid)
14828 { 14456 {
14829 return pid_nr_ns(pid, current->nsproxy->pid_ns); 14457 return pid_nr_ns(pid, task_active_pid_ns(current));
14830diff -NurpP --minimal linux-3.4.57/kernel/pid_namespace.c linux-3.4.57-vs2.3.3.9/kernel/pid_namespace.c 14458diff -NurpP --minimal linux-3.10.17/kernel/pid_namespace.c linux-3.10.17-vs2.3.6.6/kernel/pid_namespace.c
14831--- linux-3.4.57/kernel/pid_namespace.c 2012-05-21 16:07:34.000000000 +0000 14459--- linux-3.10.17/kernel/pid_namespace.c 2013-07-14 17:01:35.000000000 +0000
14832+++ linux-3.4.57-vs2.3.3.9/kernel/pid_namespace.c 2012-05-21 16:15:05.000000000 +0000 14460+++ linux-3.10.17-vs2.3.6.6/kernel/pid_namespace.c 2013-08-22 20:30:00.000000000 +0000
14833@@ -16,6 +16,7 @@ 14461@@ -18,6 +18,7 @@
14834 #include <linux/slab.h> 14462 #include <linux/proc_ns.h>
14835 #include <linux/proc_fs.h>
14836 #include <linux/reboot.h> 14463 #include <linux/reboot.h>
14464 #include <linux/export.h>
14837+#include <linux/vserver/global.h> 14465+#include <linux/vserver/global.h>
14838 14466
14839 #define BITS_PER_PAGE (PAGE_SIZE*8) 14467 struct pid_cache {
14840 14468 int nr_ids;
14841@@ -89,6 +90,7 @@ static struct pid_namespace *create_pid_ 14469@@ -110,6 +111,7 @@ static struct pid_namespace *create_pid_
14842 goto out_free_map; 14470 goto out_free_map;
14843 14471
14844 kref_init(&ns->kref); 14472 kref_init(&ns->kref);
14845+ atomic_inc(&vs_global_pid_ns); 14473+ atomic_inc(&vs_global_pid_ns);
14846 ns->level = level; 14474 ns->level = level;
14847 ns->parent = get_pid_ns(parent_pid_ns); 14475 ns->parent = get_pid_ns(parent_pid_ns);
14848 14476 ns->user_ns = get_user_ns(user_ns);
14849@@ -120,6 +122,7 @@ static void destroy_pid_namespace(struct 14477@@ -140,6 +142,7 @@ static void destroy_pid_namespace(struct
14850
14851 for (i = 0; i < PIDMAP_ENTRIES; i++) 14478 for (i = 0; i < PIDMAP_ENTRIES; i++)
14852 kfree(ns->pidmap[i].page); 14479 kfree(ns->pidmap[i].page);
14480 put_user_ns(ns->user_ns);
14853+ atomic_dec(&vs_global_pid_ns); 14481+ atomic_dec(&vs_global_pid_ns);
14854 kmem_cache_free(pid_ns_cachep, ns); 14482 kmem_cache_free(pid_ns_cachep, ns);
14855 } 14483 }
14856 14484
14857diff -NurpP --minimal linux-3.4.57/kernel/posix-timers.c linux-3.4.57-vs2.3.3.9/kernel/posix-timers.c 14485diff -NurpP --minimal linux-3.10.17/kernel/posix-timers.c linux-3.10.17-vs2.3.6.6/kernel/posix-timers.c
14858--- linux-3.4.57/kernel/posix-timers.c 2013-08-13 14:13:41.000000000 +0000 14486--- linux-3.10.17/kernel/posix-timers.c 2013-07-14 17:01:35.000000000 +0000
14859+++ linux-3.4.57-vs2.3.3.9/kernel/posix-timers.c 2013-03-30 21:29:17.000000000 +0000 14487+++ linux-3.10.17-vs2.3.6.6/kernel/posix-timers.c 2013-08-22 21:10:34.000000000 +0000
14860@@ -47,6 +47,7 @@ 14488@@ -48,6 +48,7 @@
14861 #include <linux/wait.h>
14862 #include <linux/workqueue.h> 14489 #include <linux/workqueue.h>
14863 #include <linux/export.h> 14490 #include <linux/export.h>
14491 #include <linux/hashtable.h>
14864+#include <linux/vs_context.h> 14492+#include <linux/vs_context.h>
14865 14493
14866 /* 14494 /*
14867 * Management arrays for POSIX timers. Timers are kept in slab memory 14495 * Management arrays for POSIX timers. Timers are now kept in static hash table
14868@@ -340,6 +341,7 @@ int posix_timer_event(struct k_itimer *t 14496@@ -398,6 +399,7 @@ int posix_timer_event(struct k_itimer *t
14869 { 14497 {
14870 struct task_struct *task; 14498 struct task_struct *task;
14871 int shared, ret = -1; 14499 int shared, ret = -1;
@@ -14873,7 +14501,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/posix-timers.c linux-3.4.57-vs2.3.3.9/
14873 /* 14501 /*
14874 * FIXME: if ->sigq is queued we can race with 14502 * FIXME: if ->sigq is queued we can race with
14875 * dequeue_signal()->do_schedule_next_timer(). 14503 * dequeue_signal()->do_schedule_next_timer().
14876@@ -356,10 +358,18 @@ int posix_timer_event(struct k_itimer *t 14504@@ -414,10 +416,18 @@ int posix_timer_event(struct k_itimer *t
14877 rcu_read_lock(); 14505 rcu_read_lock();
14878 task = pid_task(timr->it_pid, PIDTYPE_PID); 14506 task = pid_task(timr->it_pid, PIDTYPE_PID);
14879 if (task) { 14507 if (task) {
@@ -14892,27 +14520,27 @@ diff -NurpP --minimal linux-3.4.57/kernel/posix-timers.c linux-3.4.57-vs2.3.3.9/
14892 /* If we failed to send the signal the timer stops. */ 14520 /* If we failed to send the signal the timer stops. */
14893 return ret > 0; 14521 return ret > 0;
14894 } 14522 }
14895diff -NurpP --minimal linux-3.4.57/kernel/printk.c linux-3.4.57-vs2.3.3.9/kernel/printk.c 14523diff -NurpP --minimal linux-3.10.17/kernel/printk.c linux-3.10.17-vs2.3.6.6/kernel/printk.c
14896--- linux-3.4.57/kernel/printk.c 2013-08-13 14:13:41.000000000 +0000 14524--- linux-3.10.17/kernel/printk.c 2013-10-25 15:17:44.000000000 +0000
14897+++ linux-3.4.57-vs2.3.3.9/kernel/printk.c 2013-03-02 15:26:44.000000000 +0000 14525+++ linux-3.10.17-vs2.3.6.6/kernel/printk.c 2013-08-22 21:14:57.000000000 +0000
14898@@ -41,6 +41,7 @@ 14526@@ -45,6 +45,7 @@
14899 #include <linux/cpu.h> 14527 #include <linux/poll.h>
14900 #include <linux/notifier.h> 14528 #include <linux/irq_work.h>
14901 #include <linux/rculist.h> 14529 #include <linux/utsname.h>
14902+#include <linux/vs_cvirt.h> 14530+#include <linux/vs_cvirt.h>
14903 14531
14904 #include <asm/uaccess.h> 14532 #include <asm/uaccess.h>
14905 14533
14906@@ -317,7 +318,7 @@ static int check_syslog_permissions(int 14534@@ -391,7 +392,7 @@ static int check_syslog_permissions(int
14907 return 0; 14535 return 0;
14908 14536
14909 if (syslog_action_restricted(type)) { 14537 if (syslog_action_restricted(type)) {
14910- if (capable(CAP_SYSLOG)) 14538- if (capable(CAP_SYSLOG))
14911+ if (vx_capable(CAP_SYSLOG, VXC_SYSLOG)) 14539+ if (vx_capable(CAP_SYSLOG, VXC_SYSLOG))
14912 return 0; 14540 return 0;
14913 /* For historical reasons, accept CAP_SYS_ADMIN too, with a warning */ 14541 /*
14914 if (capable(CAP_SYS_ADMIN)) { 14542 * For historical reasons, accept CAP_SYS_ADMIN too, with
14915@@ -347,12 +348,9 @@ int do_syslog(int type, char __user *buf 14543@@ -1140,12 +1141,9 @@ int do_syslog(int type, char __user *buf
14916 if (error) 14544 if (error)
14917 return error; 14545 return error;
14918 14546
@@ -14928,7 +14556,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/printk.c linux-3.4.57-vs2.3.3.9/kernel
14928 error = -EINVAL; 14556 error = -EINVAL;
14929 if (!buf || len < 0) 14557 if (!buf || len < 0)
14930 goto out; 14558 goto out;
14931@@ -363,6 +361,16 @@ int do_syslog(int type, char __user *buf 14559@@ -1156,6 +1154,16 @@ int do_syslog(int type, char __user *buf
14932 error = -EFAULT; 14560 error = -EFAULT;
14933 goto out; 14561 goto out;
14934 } 14562 }
@@ -14943,9 +14571,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/printk.c linux-3.4.57-vs2.3.3.9/kernel
14943+ break; 14571+ break;
14944+ case SYSLOG_ACTION_READ: /* Read from log */ 14572+ case SYSLOG_ACTION_READ: /* Read from log */
14945 error = wait_event_interruptible(log_wait, 14573 error = wait_event_interruptible(log_wait,
14946 (log_start - log_end)); 14574 syslog_seq != log_next_seq);
14947 if (error) 14575 if (error)
14948@@ -389,16 +397,6 @@ int do_syslog(int type, char __user *buf 14576@@ -1168,16 +1176,6 @@ int do_syslog(int type, char __user *buf
14949 /* FALL THRU */ 14577 /* FALL THRU */
14950 /* Read last kernel messages */ 14578 /* Read last kernel messages */
14951 case SYSLOG_ACTION_READ_ALL: 14579 case SYSLOG_ACTION_READ_ALL:
@@ -14959,45 +14587,45 @@ diff -NurpP --minimal linux-3.4.57/kernel/printk.c linux-3.4.57-vs2.3.3.9/kernel
14959- error = -EFAULT; 14587- error = -EFAULT;
14960- goto out; 14588- goto out;
14961- } 14589- }
14962 count = len; 14590 error = syslog_print_all(buf, len, clear);
14963 if (count > log_buf_len) 14591 break;
14964 count = log_buf_len; 14592 /* Clear ring buffer */
14965diff -NurpP --minimal linux-3.4.57/kernel/ptrace.c linux-3.4.57-vs2.3.3.9/kernel/ptrace.c 14593diff -NurpP --minimal linux-3.10.17/kernel/ptrace.c linux-3.10.17-vs2.3.6.6/kernel/ptrace.c
14966--- linux-3.4.57/kernel/ptrace.c 2013-08-13 14:13:41.000000000 +0000 14594--- linux-3.10.17/kernel/ptrace.c 2013-07-14 17:01:35.000000000 +0000
14967+++ linux-3.4.57-vs2.3.3.9/kernel/ptrace.c 2013-02-11 23:37:30.000000000 +0000 14595+++ linux-3.10.17-vs2.3.6.6/kernel/ptrace.c 2013-08-22 20:30:00.000000000 +0000
14968@@ -22,6 +22,7 @@ 14596@@ -23,6 +23,7 @@
14969 #include <linux/syscalls.h> 14597 #include <linux/syscalls.h>
14970 #include <linux/uaccess.h> 14598 #include <linux/uaccess.h>
14971 #include <linux/regset.h> 14599 #include <linux/regset.h>
14972+#include <linux/vs_context.h> 14600+#include <linux/vs_context.h>
14973 #include <linux/hw_breakpoint.h> 14601 #include <linux/hw_breakpoint.h>
14974 #include <linux/cn_proc.h> 14602 #include <linux/cn_proc.h>
14603 #include <linux/compat.h>
14604@@ -263,6 +264,11 @@ ok:
14605 }
14606 rcu_read_unlock();
14975 14607
14976@@ -256,6 +257,11 @@ ok:
14977 dumpable = get_dumpable(task->mm);
14978 if (!dumpable && !ptrace_has_cap(task_user_ns(task), mode))
14979 return -EPERM;
14980+ if (!vx_check(task->xid, VS_ADMIN_P|VS_WATCH_P|VS_IDENT)) 14608+ if (!vx_check(task->xid, VS_ADMIN_P|VS_WATCH_P|VS_IDENT))
14981+ return -EPERM; 14609+ return -EPERM;
14982+ if (!vx_check(task->xid, VS_IDENT) && 14610+ if (!vx_check(task->xid, VS_IDENT) &&
14983+ !task_vx_flags(task, VXF_STATE_ADMIN, 0)) 14611+ !task_vx_flags(task, VXF_STATE_ADMIN, 0))
14984+ return -EACCES; 14612+ return -EACCES;
14985
14986 return security_ptrace_access_check(task, mode); 14613 return security_ptrace_access_check(task, mode);
14987 } 14614 }
14988diff -NurpP --minimal linux-3.4.57/kernel/sched/core.c linux-3.4.57-vs2.3.3.9/kernel/sched/core.c 14615
14989--- linux-3.4.57/kernel/sched/core.c 2013-08-13 14:13:41.000000000 +0000 14616diff -NurpP --minimal linux-3.10.17/kernel/sched/core.c linux-3.10.17-vs2.3.6.6/kernel/sched/core.c
14990+++ linux-3.4.57-vs2.3.3.9/kernel/sched/core.c 2013-07-14 13:38:36.000000000 +0000 14617--- linux-3.10.17/kernel/sched/core.c 2013-07-14 17:01:35.000000000 +0000
14991@@ -72,6 +72,8 @@ 14618+++ linux-3.10.17-vs2.3.6.6/kernel/sched/core.c 2013-08-22 20:30:00.000000000 +0000
14992 #include <linux/slab.h> 14619@@ -73,6 +73,8 @@
14993 #include <linux/init_task.h> 14620 #include <linux/init_task.h>
14994 #include <linux/binfmts.h> 14621 #include <linux/binfmts.h>
14622 #include <linux/context_tracking.h>
14995+#include <linux/vs_sched.h> 14623+#include <linux/vs_sched.h>
14996+#include <linux/vs_cvirt.h> 14624+#include <linux/vs_cvirt.h>
14997 14625
14998 #include <asm/switch_to.h> 14626 #include <asm/switch_to.h>
14999 #include <asm/tlb.h> 14627 #include <asm/tlb.h>
15000@@ -2228,9 +2230,17 @@ EXPORT_SYMBOL(avenrun); /* should be rem 14628@@ -2139,9 +2141,17 @@ EXPORT_SYMBOL(avenrun); /* should be rem
15001 */ 14629 */
15002 void get_avenrun(unsigned long *loads, unsigned long offset, int shift) 14630 void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
15003 { 14631 {
@@ -15018,7 +14646,27 @@ diff -NurpP --minimal linux-3.4.57/kernel/sched/core.c linux-3.4.57-vs2.3.3.9/ke
15018 } 14646 }
15019 14647
15020 static long calc_load_fold_active(struct rq *this_rq) 14648 static long calc_load_fold_active(struct rq *this_rq)
15021@@ -2799,14 +2809,17 @@ static inline void task_group_account_fi 14649@@ -3738,7 +3748,7 @@ SYSCALL_DEFINE1(nice, int, increment)
14650 nice = 19;
14651
14652 if (increment < 0 && !can_nice(current, nice))
14653- return -EPERM;
14654+ return vx_flags(VXF_IGNEG_NICE, 0) ? 0 : -EPERM;
14655
14656 retval = security_task_setnice(current, nice);
14657 if (retval)
14658diff -NurpP --minimal linux-3.10.17/kernel/sched/cputime.c linux-3.10.17-vs2.3.6.6/kernel/sched/cputime.c
14659--- linux-3.10.17/kernel/sched/cputime.c 2013-10-25 15:17:44.000000000 +0000
14660+++ linux-3.10.17-vs2.3.6.6/kernel/sched/cputime.c 2013-10-09 17:37:22.000000000 +0000
14661@@ -4,6 +4,7 @@
14662 #include <linux/kernel_stat.h>
14663 #include <linux/static_key.h>
14664 #include <linux/context_tracking.h>
14665+#include <linux/vs_sched.h>
14666 #include "sched.h"
14667
14668
14669@@ -135,14 +136,17 @@ static inline void task_group_account_fi
15022 void account_user_time(struct task_struct *p, cputime_t cputime, 14670 void account_user_time(struct task_struct *p, cputime_t cputime,
15023 cputime_t cputime_scaled) 14671 cputime_t cputime_scaled)
15024 { 14672 {
@@ -15037,7 +14685,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/sched/core.c linux-3.4.57-vs2.3.3.9/ke
15037 14685
15038 /* Add user time to cpustat. */ 14686 /* Add user time to cpustat. */
15039 task_group_account_field(p, index, (__force u64) cputime); 14687 task_group_account_field(p, index, (__force u64) cputime);
15040@@ -2853,9 +2866,12 @@ static inline 14688@@ -189,9 +193,12 @@ static inline
15041 void __account_system_time(struct task_struct *p, cputime_t cputime, 14689 void __account_system_time(struct task_struct *p, cputime_t cputime,
15042 cputime_t cputime_scaled, int index) 14690 cputime_t cputime_scaled, int index)
15043 { 14691 {
@@ -15050,27 +14698,18 @@ diff -NurpP --minimal linux-3.4.57/kernel/sched/core.c linux-3.4.57-vs2.3.3.9/ke
15050 account_group_system_time(p, cputime); 14698 account_group_system_time(p, cputime);
15051 14699
15052 /* Add system time to cpustat. */ 14700 /* Add system time to cpustat. */
15053@@ -4081,7 +4097,7 @@ SYSCALL_DEFINE1(nice, int, increment) 14701diff -NurpP --minimal linux-3.10.17/kernel/sched/fair.c linux-3.10.17-vs2.3.6.6/kernel/sched/fair.c
15054 nice = 19; 14702--- linux-3.10.17/kernel/sched/fair.c 2013-10-25 15:17:44.000000000 +0000
15055 14703+++ linux-3.10.17-vs2.3.6.6/kernel/sched/fair.c 2013-10-09 17:37:22.000000000 +0000
15056 if (increment < 0 && !can_nice(current, nice)) 14704@@ -29,6 +29,7 @@
15057- return -EPERM; 14705 #include <linux/mempolicy.h>
15058+ return vx_flags(VXF_IGNEG_NICE, 0) ? 0 : -EPERM; 14706 #include <linux/migrate.h>
15059 14707 #include <linux/task_work.h>
15060 retval = security_task_setnice(current, nice);
15061 if (retval)
15062diff -NurpP --minimal linux-3.4.57/kernel/sched/fair.c linux-3.4.57-vs2.3.3.9/kernel/sched/fair.c
15063--- linux-3.4.57/kernel/sched/fair.c 2013-08-13 14:13:41.000000000 +0000
15064+++ linux-3.4.57-vs2.3.3.9/kernel/sched/fair.c 2013-08-13 17:07:37.000000000 +0000
15065@@ -26,6 +26,7 @@
15066 #include <linux/slab.h>
15067 #include <linux/profile.h>
15068 #include <linux/interrupt.h>
15069+#include <linux/vs_cvirt.h> 14708+#include <linux/vs_cvirt.h>
15070 14709
15071 #include <trace/events/sched.h> 14710 #include <trace/events/sched.h>
15072 14711
15073@@ -1111,6 +1112,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, st 14712@@ -1736,6 +1737,8 @@ enqueue_entity(struct cfs_rq *cfs_rq, st
15074 __enqueue_entity(cfs_rq, se); 14713 __enqueue_entity(cfs_rq, se);
15075 se->on_rq = 1; 14714 se->on_rq = 1;
15076 14715
@@ -15079,28 +14718,28 @@ diff -NurpP --minimal linux-3.4.57/kernel/sched/fair.c linux-3.4.57-vs2.3.3.9/ke
15079 if (cfs_rq->nr_running == 1) { 14718 if (cfs_rq->nr_running == 1) {
15080 list_add_leaf_cfs_rq(cfs_rq); 14719 list_add_leaf_cfs_rq(cfs_rq);
15081 check_enqueue_throttle(cfs_rq); 14720 check_enqueue_throttle(cfs_rq);
15082@@ -1191,6 +1194,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, st 14721@@ -1817,6 +1820,8 @@ dequeue_entity(struct cfs_rq *cfs_rq, st
15083 if (se != cfs_rq->curr) 14722 if (se != cfs_rq->curr)
15084 __dequeue_entity(cfs_rq, se); 14723 __dequeue_entity(cfs_rq, se);
15085 se->on_rq = 0; 14724 se->on_rq = 0;
15086+ if (entity_is_task(se)) 14725+ if (entity_is_task(se))
15087+ vx_deactivate_task(task_of(se)); 14726+ vx_deactivate_task(task_of(se));
15088 update_cfs_load(cfs_rq, 0);
15089 account_entity_dequeue(cfs_rq, se); 14727 account_entity_dequeue(cfs_rq, se);
15090 14728
15091diff -NurpP --minimal linux-3.4.57/kernel/signal.c linux-3.4.57-vs2.3.3.9/kernel/signal.c 14729 /*
15092--- linux-3.4.57/kernel/signal.c 2013-08-13 14:13:41.000000000 +0000 14730diff -NurpP --minimal linux-3.10.17/kernel/signal.c linux-3.10.17-vs2.3.6.6/kernel/signal.c
15093+++ linux-3.4.57-vs2.3.3.9/kernel/signal.c 2013-07-14 13:38:36.000000000 +0000 14731--- linux-3.10.17/kernel/signal.c 2013-07-14 17:01:35.000000000 +0000
15094@@ -29,6 +29,8 @@ 14732+++ linux-3.10.17-vs2.3.6.6/kernel/signal.c 2013-08-22 21:13:50.000000000 +0000
15095 #include <linux/pid_namespace.h> 14733@@ -33,6 +33,8 @@
15096 #include <linux/nsproxy.h> 14734 #include <linux/uprobes.h>
15097 #include <linux/user_namespace.h> 14735 #include <linux/compat.h>
14736 #include <linux/cn_proc.h>
15098+#include <linux/vs_context.h> 14737+#include <linux/vs_context.h>
15099+#include <linux/vs_pid.h> 14738+#include <linux/vs_pid.h>
15100 #define CREATE_TRACE_POINTS 14739 #define CREATE_TRACE_POINTS
15101 #include <trace/events/signal.h> 14740 #include <trace/events/signal.h>
15102 14741
15103@@ -787,9 +789,18 @@ static int check_kill_permission(int sig 14742@@ -790,9 +792,18 @@ static int check_kill_permission(int sig
15104 struct pid *sid; 14743 struct pid *sid;
15105 int error; 14744 int error;
15106 14745
@@ -15119,7 +14758,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/signal.c linux-3.4.57-vs2.3.3.9/kernel
15119 if (!si_fromuser(info)) 14758 if (!si_fromuser(info))
15120 return 0; 14759 return 0;
15121 14760
15122@@ -813,6 +824,20 @@ static int check_kill_permission(int sig 14761@@ -816,6 +827,20 @@ static int check_kill_permission(int sig
15123 } 14762 }
15124 } 14763 }
15125 14764
@@ -15140,7 +14779,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/signal.c linux-3.4.57-vs2.3.3.9/kernel
15140 return security_task_kill(t, info, sig, 0); 14779 return security_task_kill(t, info, sig, 0);
15141 } 14780 }
15142 14781
15143@@ -1355,7 +1380,7 @@ int kill_pid_info(int sig, struct siginf 14782@@ -1353,7 +1378,7 @@ int kill_pid_info(int sig, struct siginf
15144 rcu_read_lock(); 14783 rcu_read_lock();
15145 retry: 14784 retry:
15146 p = pid_task(pid, PIDTYPE_PID); 14785 p = pid_task(pid, PIDTYPE_PID);
@@ -15149,7 +14788,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/signal.c linux-3.4.57-vs2.3.3.9/kernel
15149 error = group_send_sig_info(sig, info, p); 14788 error = group_send_sig_info(sig, info, p);
15150 if (unlikely(error == -ESRCH)) 14789 if (unlikely(error == -ESRCH))
15151 /* 14790 /*
15152@@ -1405,7 +1430,7 @@ int kill_pid_info_as_cred(int sig, struc 14791@@ -1401,7 +1426,7 @@ int kill_pid_info_as_cred(int sig, struc
15153 14792
15154 rcu_read_lock(); 14793 rcu_read_lock();
15155 p = pid_task(pid, PIDTYPE_PID); 14794 p = pid_task(pid, PIDTYPE_PID);
@@ -15158,7 +14797,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/signal.c linux-3.4.57-vs2.3.3.9/kernel
15158 ret = -ESRCH; 14797 ret = -ESRCH;
15159 goto out_unlock; 14798 goto out_unlock;
15160 } 14799 }
15161@@ -1457,8 +1482,10 @@ static int kill_something_info(int sig, 14800@@ -1453,8 +1478,10 @@ static int kill_something_info(int sig,
15162 struct task_struct * p; 14801 struct task_struct * p;
15163 14802
15164 for_each_process(p) { 14803 for_each_process(p) {
@@ -15171,7 +14810,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/signal.c linux-3.4.57-vs2.3.3.9/kernel
15171 int err = group_send_sig_info(sig, info, p); 14810 int err = group_send_sig_info(sig, info, p);
15172 ++count; 14811 ++count;
15173 if (err != -EPERM) 14812 if (err != -EPERM)
15174@@ -2312,6 +2339,11 @@ relock: 14813@@ -2308,6 +2335,11 @@ relock:
15175 !sig_kernel_only(signr)) 14814 !sig_kernel_only(signr))
15176 continue; 14815 continue;
15177 14816
@@ -15183,29 +14822,29 @@ diff -NurpP --minimal linux-3.4.57/kernel/signal.c linux-3.4.57-vs2.3.3.9/kernel
15183 if (sig_kernel_stop(signr)) { 14822 if (sig_kernel_stop(signr)) {
15184 /* 14823 /*
15185 * The default action is to stop all threads in 14824 * The default action is to stop all threads in
15186diff -NurpP --minimal linux-3.4.57/kernel/softirq.c linux-3.4.57-vs2.3.3.9/kernel/softirq.c 14825diff -NurpP --minimal linux-3.10.17/kernel/softirq.c linux-3.10.17-vs2.3.6.6/kernel/softirq.c
15187--- linux-3.4.57/kernel/softirq.c 2012-05-21 16:07:34.000000000 +0000 14826--- linux-3.10.17/kernel/softirq.c 2013-10-25 15:17:44.000000000 +0000
15188+++ linux-3.4.57-vs2.3.3.9/kernel/softirq.c 2012-05-21 16:15:05.000000000 +0000 14827+++ linux-3.10.17-vs2.3.6.6/kernel/softirq.c 2013-10-26 18:03:17.000000000 +0000
15189@@ -24,6 +24,7 @@ 14828@@ -25,6 +25,7 @@
15190 #include <linux/ftrace.h>
15191 #include <linux/smp.h> 14829 #include <linux/smp.h>
14830 #include <linux/smpboot.h>
15192 #include <linux/tick.h> 14831 #include <linux/tick.h>
15193+#include <linux/vs_context.h> 14832+#include <linux/vs_context.h>
15194 14833
15195 #define CREATE_TRACE_POINTS 14834 #define CREATE_TRACE_POINTS
15196 #include <trace/events/irq.h> 14835 #include <trace/events/irq.h>
15197diff -NurpP --minimal linux-3.4.57/kernel/sys.c linux-3.4.57-vs2.3.3.9/kernel/sys.c 14836diff -NurpP --minimal linux-3.10.17/kernel/sys.c linux-3.10.17-vs2.3.6.6/kernel/sys.c
15198--- linux-3.4.57/kernel/sys.c 2013-08-13 14:13:41.000000000 +0000 14837--- linux-3.10.17/kernel/sys.c 2013-07-14 17:01:35.000000000 +0000
15199+++ linux-3.4.57-vs2.3.3.9/kernel/sys.c 2013-07-14 13:38:36.000000000 +0000 14838+++ linux-3.10.17-vs2.3.6.6/kernel/sys.c 2013-08-22 20:30:00.000000000 +0000
15200@@ -45,6 +45,7 @@ 14839@@ -55,6 +55,7 @@
15201 #include <linux/syscalls.h> 14840 #include <linux/cred.h>
15202 #include <linux/kprobes.h>
15203 #include <linux/user_namespace.h>
15204+#include <linux/vs_pid.h>
15205 14841
15206 #include <linux/kmsg_dump.h> 14842 #include <linux/kmsg_dump.h>
14843+#include <linux/vs_pid.h>
15207 /* Move somewhere else to avoid recompiling? */ 14844 /* Move somewhere else to avoid recompiling? */
15208@@ -155,7 +156,10 @@ static int set_one_prio(struct task_stru 14845 #include <generated/utsrelease.h>
14846
14847@@ -160,7 +161,10 @@ static int set_one_prio(struct task_stru
15209 goto out; 14848 goto out;
15210 } 14849 }
15211 if (niceval < task_nice(p) && !can_nice(p, niceval)) { 14850 if (niceval < task_nice(p) && !can_nice(p, niceval)) {
@@ -15217,7 +14856,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/sys.c linux-3.4.57-vs2.3.3.9/kernel/sy
15217 goto out; 14856 goto out;
15218 } 14857 }
15219 no_nice = security_task_setnice(p, niceval); 14858 no_nice = security_task_setnice(p, niceval);
15220@@ -205,6 +209,8 @@ SYSCALL_DEFINE3(setpriority, int, which, 14859@@ -211,6 +215,8 @@ SYSCALL_DEFINE3(setpriority, int, which,
15221 else 14860 else
15222 pgrp = task_pgrp(current); 14861 pgrp = task_pgrp(current);
15223 do_each_pid_thread(pgrp, PIDTYPE_PGID, p) { 14862 do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -15226,7 +14865,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/sys.c linux-3.4.57-vs2.3.3.9/kernel/sy
15226 error = set_one_prio(p, niceval, error); 14865 error = set_one_prio(p, niceval, error);
15227 } while_each_pid_thread(pgrp, PIDTYPE_PGID, p); 14866 } while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
15228 break; 14867 break;
15229@@ -268,6 +274,8 @@ SYSCALL_DEFINE2(getpriority, int, which, 14868@@ -276,6 +282,8 @@ SYSCALL_DEFINE2(getpriority, int, which,
15230 else 14869 else
15231 pgrp = task_pgrp(current); 14870 pgrp = task_pgrp(current);
15232 do_each_pid_thread(pgrp, PIDTYPE_PGID, p) { 14871 do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
@@ -15235,7 +14874,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/sys.c linux-3.4.57-vs2.3.3.9/kernel/sy
15235 niceval = 20 - task_nice(p); 14874 niceval = 20 - task_nice(p);
15236 if (niceval > retval) 14875 if (niceval > retval)
15237 retval = niceval; 14876 retval = niceval;
15238@@ -443,6 +451,8 @@ EXPORT_SYMBOL_GPL(kernel_power_off); 14877@@ -452,6 +460,8 @@ EXPORT_SYMBOL_GPL(kernel_power_off);
15239 14878
15240 static DEFINE_MUTEX(reboot_mutex); 14879 static DEFINE_MUTEX(reboot_mutex);
15241 14880
@@ -15244,7 +14883,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/sys.c linux-3.4.57-vs2.3.3.9/kernel/sy
15244 /* 14883 /*
15245 * Reboot system call: for obvious reasons only root may call it, 14884 * Reboot system call: for obvious reasons only root may call it,
15246 * and even root needs to set up some magic numbers in the registers 14885 * and even root needs to set up some magic numbers in the registers
15247@@ -484,6 +494,9 @@ SYSCALL_DEFINE4(reboot, int, magic1, int 14886@@ -494,6 +504,9 @@ SYSCALL_DEFINE4(reboot, int, magic1, int
15248 if ((cmd == LINUX_REBOOT_CMD_POWER_OFF) && !pm_power_off) 14887 if ((cmd == LINUX_REBOOT_CMD_POWER_OFF) && !pm_power_off)
15249 cmd = LINUX_REBOOT_CMD_HALT; 14888 cmd = LINUX_REBOOT_CMD_HALT;
15250 14889
@@ -15254,7 +14893,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/sys.c linux-3.4.57-vs2.3.3.9/kernel/sy
15254 mutex_lock(&reboot_mutex); 14893 mutex_lock(&reboot_mutex);
15255 switch (cmd) { 14894 switch (cmd) {
15256 case LINUX_REBOOT_CMD_RESTART: 14895 case LINUX_REBOOT_CMD_RESTART:
15257@@ -1309,7 +1322,8 @@ SYSCALL_DEFINE2(sethostname, char __user 14896@@ -1462,7 +1475,8 @@ SYSCALL_DEFINE2(sethostname, char __user
15258 int errno; 14897 int errno;
15259 char tmp[__NEW_UTS_LEN]; 14898 char tmp[__NEW_UTS_LEN];
15260 14899
@@ -15264,7 +14903,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/sys.c linux-3.4.57-vs2.3.3.9/kernel/sy
15264 return -EPERM; 14903 return -EPERM;
15265 14904
15266 if (len < 0 || len > __NEW_UTS_LEN) 14905 if (len < 0 || len > __NEW_UTS_LEN)
15267@@ -1360,7 +1374,8 @@ SYSCALL_DEFINE2(setdomainname, char __us 14906@@ -1513,7 +1527,8 @@ SYSCALL_DEFINE2(setdomainname, char __us
15268 int errno; 14907 int errno;
15269 char tmp[__NEW_UTS_LEN]; 14908 char tmp[__NEW_UTS_LEN];
15270 14909
@@ -15274,7 +14913,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/sys.c linux-3.4.57-vs2.3.3.9/kernel/sy
15274 return -EPERM; 14913 return -EPERM;
15275 if (len < 0 || len > __NEW_UTS_LEN) 14914 if (len < 0 || len > __NEW_UTS_LEN)
15276 return -EINVAL; 14915 return -EINVAL;
15277@@ -1479,7 +1494,7 @@ int do_prlimit(struct task_struct *tsk, 14916@@ -1632,7 +1647,7 @@ int do_prlimit(struct task_struct *tsk,
15278 /* Keep the capable check against init_user_ns until 14917 /* Keep the capable check against init_user_ns until
15279 cgroups can contain all limits */ 14918 cgroups can contain all limits */
15280 if (new_rlim->rlim_max > rlim->rlim_max && 14919 if (new_rlim->rlim_max > rlim->rlim_max &&
@@ -15283,20 +14922,20 @@ diff -NurpP --minimal linux-3.4.57/kernel/sys.c linux-3.4.57-vs2.3.3.9/kernel/sy
15283 retval = -EPERM; 14922 retval = -EPERM;
15284 if (!retval) 14923 if (!retval)
15285 retval = security_task_setrlimit(tsk->group_leader, 14924 retval = security_task_setrlimit(tsk->group_leader,
15286@@ -1533,7 +1548,8 @@ static int check_prlimit_permission(stru 14925@@ -1685,7 +1700,8 @@ static int check_prlimit_permission(stru
15287 cred->gid == tcred->sgid && 14926 gid_eq(cred->gid, tcred->sgid) &&
15288 cred->gid == tcred->gid)) 14927 gid_eq(cred->gid, tcred->gid))
15289 return 0; 14928 return 0;
15290- if (ns_capable(tcred->user->user_ns, CAP_SYS_RESOURCE)) 14929- if (ns_capable(tcred->user_ns, CAP_SYS_RESOURCE))
15291+ if (vx_ns_capable(tcred->user->user_ns, 14930+ if (vx_ns_capable(tcred->user_ns,
15292+ CAP_SYS_RESOURCE, VXC_SET_RLIMIT)) 14931+ CAP_SYS_RESOURCE, VXC_SET_RLIMIT))
15293 return 0; 14932 return 0;
15294 14933
15295 return -EPERM; 14934 return -EPERM;
15296diff -NurpP --minimal linux-3.4.57/kernel/sysctl.c linux-3.4.57-vs2.3.3.9/kernel/sysctl.c 14935diff -NurpP --minimal linux-3.10.17/kernel/sysctl.c linux-3.10.17-vs2.3.6.6/kernel/sysctl.c
15297--- linux-3.4.57/kernel/sysctl.c 2012-05-21 16:07:34.000000000 +0000 14936--- linux-3.10.17/kernel/sysctl.c 2013-07-14 17:01:35.000000000 +0000
15298+++ linux-3.4.57-vs2.3.3.9/kernel/sysctl.c 2012-05-21 16:15:05.000000000 +0000 14937+++ linux-3.10.17-vs2.3.6.6/kernel/sysctl.c 2013-08-22 20:30:00.000000000 +0000
15299@@ -81,6 +81,7 @@ 14938@@ -83,6 +83,7 @@
15300 #if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_LOCK_STAT) 14939 #if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_LOCK_STAT)
15301 #include <linux/lockdep.h> 14940 #include <linux/lockdep.h>
15302 #endif 14941 #endif
@@ -15304,10 +14943,10 @@ diff -NurpP --minimal linux-3.4.57/kernel/sysctl.c linux-3.4.57-vs2.3.3.9/kernel
15304 #ifdef CONFIG_CHR_DEV_SG 14943 #ifdef CONFIG_CHR_DEV_SG
15305 #include <scsi/sg.h> 14944 #include <scsi/sg.h>
15306 #endif 14945 #endif
15307@@ -562,6 +563,13 @@ static struct ctl_table kern_table[] = { 14946@@ -628,6 +629,13 @@ static struct ctl_table kern_table[] = {
14947 .mode = 0644,
15308 .proc_handler = proc_dostring, 14948 .proc_handler = proc_dostring,
15309 }, 14949 },
15310 #endif
15311+ { 14950+ {
15312+ .procname = "vshelper", 14951+ .procname = "vshelper",
15313+ .data = &vshelper_path, 14952+ .data = &vshelper_path,
@@ -15315,13 +14954,13 @@ diff -NurpP --minimal linux-3.4.57/kernel/sysctl.c linux-3.4.57-vs2.3.3.9/kernel
15315+ .mode = 0644, 14954+ .mode = 0644,
15316+ .proc_handler = &proc_dostring, 14955+ .proc_handler = &proc_dostring,
15317+ }, 14956+ },
14957
15318 #ifdef CONFIG_CHR_DEV_SG 14958 #ifdef CONFIG_CHR_DEV_SG
15319 { 14959 {
15320 .procname = "sg-big-buff", 14960diff -NurpP --minimal linux-3.10.17/kernel/sysctl_binary.c linux-3.10.17-vs2.3.6.6/kernel/sysctl_binary.c
15321diff -NurpP --minimal linux-3.4.57/kernel/sysctl_binary.c linux-3.4.57-vs2.3.3.9/kernel/sysctl_binary.c 14961--- linux-3.10.17/kernel/sysctl_binary.c 2013-07-14 17:01:35.000000000 +0000
15322--- linux-3.4.57/kernel/sysctl_binary.c 2013-08-13 14:13:41.000000000 +0000 14962+++ linux-3.10.17-vs2.3.6.6/kernel/sysctl_binary.c 2013-08-22 20:30:00.000000000 +0000
15323+++ linux-3.4.57-vs2.3.3.9/kernel/sysctl_binary.c 2013-03-30 21:29:17.000000000 +0000 14963@@ -74,6 +74,7 @@ static const struct bin_table bin_kern_t
15324@@ -73,6 +73,7 @@ static const struct bin_table bin_kern_t
15325 14964
15326 { CTL_INT, KERN_PANIC, "panic" }, 14965 { CTL_INT, KERN_PANIC, "panic" },
15327 { CTL_INT, KERN_REALROOTDEV, "real-root-dev" }, 14966 { CTL_INT, KERN_REALROOTDEV, "real-root-dev" },
@@ -15329,21 +14968,37 @@ diff -NurpP --minimal linux-3.4.57/kernel/sysctl_binary.c linux-3.4.57-vs2.3.3.9
15329 14968
15330 { CTL_STR, KERN_SPARC_REBOOT, "reboot-cmd" }, 14969 { CTL_STR, KERN_SPARC_REBOOT, "reboot-cmd" },
15331 { CTL_INT, KERN_CTLALTDEL, "ctrl-alt-del" }, 14970 { CTL_INT, KERN_CTLALTDEL, "ctrl-alt-del" },
15332diff -NurpP --minimal linux-3.4.57/kernel/time/timekeeping.c linux-3.4.57-vs2.3.3.9/kernel/time/timekeeping.c 14971diff -NurpP --minimal linux-3.10.17/kernel/time/timekeeping.c linux-3.10.17-vs2.3.6.6/kernel/time/timekeeping.c
15333--- linux-3.4.57/kernel/time/timekeeping.c 2013-08-13 14:13:41.000000000 +0000 14972--- linux-3.10.17/kernel/time/timekeeping.c 2013-10-25 15:17:44.000000000 +0000
15334+++ linux-3.4.57-vs2.3.3.9/kernel/time/timekeeping.c 2012-12-08 00:53:53.000000000 +0000 14973+++ linux-3.10.17-vs2.3.6.6/kernel/time/timekeeping.c 2013-10-09 17:37:22.000000000 +0000
15335@@ -254,6 +254,7 @@ void getnstimeofday(struct timespec *ts) 14974@@ -22,6 +22,7 @@
15336 } while (read_seqretry(&timekeeper.lock, seq)); 14975 #include <linux/tick.h>
14976 #include <linux/stop_machine.h>
14977 #include <linux/pvclock_gtod.h>
14978+#include <linux/vs_time.h>
14979
14980 #include "tick-internal.h"
14981 #include "ntp_internal.h"
14982@@ -693,6 +694,7 @@ void getrawmonotonic(struct timespec *ts
14983 } while (read_seqcount_retry(&timekeeper_seq, seq));
15337 14984
15338 timespec_add_ns(ts, nsecs); 14985 timespec_add_ns(ts, nsecs);
15339+ vx_adjust_timespec(ts); 14986+ vx_adjust_timespec(ts);
15340 } 14987 }
14988 EXPORT_SYMBOL(getrawmonotonic);
15341 14989
15342 EXPORT_SYMBOL(getnstimeofday); 14990diff -NurpP --minimal linux-3.10.17/kernel/time.c linux-3.10.17-vs2.3.6.6/kernel/time.c
15343diff -NurpP --minimal linux-3.4.57/kernel/time.c linux-3.4.57-vs2.3.3.9/kernel/time.c 14991--- linux-3.10.17/kernel/time.c 2013-07-14 17:01:35.000000000 +0000
15344--- linux-3.4.57/kernel/time.c 2012-05-21 16:07:34.000000000 +0000 14992+++ linux-3.10.17-vs2.3.6.6/kernel/time.c 2013-08-22 20:30:00.000000000 +0000
15345+++ linux-3.4.57-vs2.3.3.9/kernel/time.c 2012-05-21 16:15:05.000000000 +0000 14993@@ -37,6 +37,7 @@
15346@@ -92,7 +92,7 @@ SYSCALL_DEFINE1(stime, time_t __user *, 14994 #include <linux/fs.h>
14995 #include <linux/math64.h>
14996 #include <linux/ptrace.h>
14997+#include <linux/vs_time.h>
14998
14999 #include <asm/uaccess.h>
15000 #include <asm/unistd.h>
15001@@ -92,7 +93,7 @@ SYSCALL_DEFINE1(stime, time_t __user *,
15347 if (err) 15002 if (err)
15348 return err; 15003 return err;
15349 15004
@@ -15352,7 +15007,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/time.c linux-3.4.57-vs2.3.3.9/kernel/t
15352 return 0; 15007 return 0;
15353 } 15008 }
15354 15009
15355@@ -172,7 +172,7 @@ int do_sys_settimeofday(const struct tim 15010@@ -181,7 +182,7 @@ int do_sys_settimeofday(const struct tim
15356 } 15011 }
15357 } 15012 }
15358 if (tv) 15013 if (tv)
@@ -15361,13 +15016,13 @@ diff -NurpP --minimal linux-3.4.57/kernel/time.c linux-3.4.57-vs2.3.3.9/kernel/t
15361 return 0; 15016 return 0;
15362 } 15017 }
15363 15018
15364diff -NurpP --minimal linux-3.4.57/kernel/timer.c linux-3.4.57-vs2.3.3.9/kernel/timer.c 15019diff -NurpP --minimal linux-3.10.17/kernel/timer.c linux-3.10.17-vs2.3.6.6/kernel/timer.c
15365--- linux-3.4.57/kernel/timer.c 2013-08-13 14:13:41.000000000 +0000 15020--- linux-3.10.17/kernel/timer.c 2013-10-25 15:17:44.000000000 +0000
15366+++ linux-3.4.57-vs2.3.3.9/kernel/timer.c 2013-08-13 17:07:37.000000000 +0000 15021+++ linux-3.10.17-vs2.3.6.6/kernel/timer.c 2013-08-22 21:17:56.000000000 +0000
15367@@ -40,6 +40,10 @@ 15022@@ -42,6 +42,10 @@
15368 #include <linux/irq_work.h> 15023 #include <linux/sched/sysctl.h>
15369 #include <linux/sched.h>
15370 #include <linux/slab.h> 15024 #include <linux/slab.h>
15025 #include <linux/compat.h>
15371+#include <linux/vs_base.h> 15026+#include <linux/vs_base.h>
15372+#include <linux/vs_cvirt.h> 15027+#include <linux/vs_cvirt.h>
15373+#include <linux/vs_pid.h> 15028+#include <linux/vs_pid.h>
@@ -15375,79 +15030,41 @@ diff -NurpP --minimal linux-3.4.57/kernel/timer.c linux-3.4.57-vs2.3.3.9/kernel/
15375 15030
15376 #include <asm/uaccess.h> 15031 #include <asm/uaccess.h>
15377 #include <asm/unistd.h> 15032 #include <asm/unistd.h>
15378@@ -1390,12 +1394,6 @@ SYSCALL_DEFINE1(alarm, unsigned int, sec 15033diff -NurpP --minimal linux-3.10.17/kernel/user_namespace.c linux-3.10.17-vs2.3.6.6/kernel/user_namespace.c
15379 15034--- linux-3.10.17/kernel/user_namespace.c 2013-10-25 15:17:45.000000000 +0000
15380 #endif 15035+++ linux-3.10.17-vs2.3.6.6/kernel/user_namespace.c 2013-08-22 20:30:00.000000000 +0000
15381 15036@@ -22,6 +22,7 @@
15382-#ifndef __alpha__ 15037 #include <linux/ctype.h>
15383- 15038 #include <linux/projid.h>
15384-/* 15039 #include <linux/fs_struct.h>
15385- * The Alpha uses getxpid, getxuid, and getxgid instead. Maybe this
15386- * should be moved into arch/i386 instead?
15387- */
15388
15389 /**
15390 * sys_getpid - return the thread group id of the current process
15391@@ -1424,10 +1422,23 @@ SYSCALL_DEFINE0(getppid)
15392 rcu_read_lock();
15393 pid = task_tgid_vnr(rcu_dereference(current->real_parent));
15394 rcu_read_unlock();
15395+ return vx_map_pid(pid);
15396+}
15397
15398- return pid;
15399+#ifdef __alpha__
15400+
15401+/*
15402+ * The Alpha uses getxpid, getxuid, and getxgid instead.
15403+ */
15404+
15405+asmlinkage long do_getxpid(long *ppid)
15406+{
15407+ *ppid = sys_getppid();
15408+ return sys_getpid();
15409 }
15410
15411+#else /* _alpha_ */
15412+
15413 SYSCALL_DEFINE0(getuid)
15414 {
15415 /* Only we change this so SMP safe */
15416diff -NurpP --minimal linux-3.4.57/kernel/user_namespace.c linux-3.4.57-vs2.3.3.9/kernel/user_namespace.c
15417--- linux-3.4.57/kernel/user_namespace.c 2012-01-09 15:15:00.000000000 +0000
15418+++ linux-3.4.57-vs2.3.3.9/kernel/user_namespace.c 2012-05-21 16:15:05.000000000 +0000
15419@@ -11,6 +11,7 @@
15420 #include <linux/user_namespace.h>
15421 #include <linux/highuid.h>
15422 #include <linux/cred.h>
15423+#include <linux/vserver/global.h> 15040+#include <linux/vserver/global.h>
15424 15041
15425 static struct kmem_cache *user_ns_cachep __read_mostly; 15042 static struct kmem_cache *user_ns_cachep __read_mostly;
15426 15043
15427@@ -33,6 +34,7 @@ int create_user_ns(struct cred *new) 15044@@ -94,6 +95,7 @@ int create_user_ns(struct cred *new)
15428 return -ENOMEM;
15429 15045
15430 kref_init(&ns->kref); 15046 atomic_set(&ns->count, 1);
15047 /* Leave the new->user_ns reference with the new user namespace. */
15431+ atomic_inc(&vs_global_user_ns); 15048+ atomic_inc(&vs_global_user_ns);
15049 ns->parent = parent_ns;
15050 ns->level = parent_ns->level + 1;
15051 ns->owner = owner;
15052@@ -844,6 +846,8 @@ static void *userns_get(struct task_stru
15432 15053
15433 for (n = 0; n < UIDHASH_SZ; ++n) 15054 static void userns_put(void *ns)
15434 INIT_HLIST_HEAD(ns->uidhash_table + n); 15055 {
15435@@ -81,6 +83,8 @@ void free_user_ns(struct kref *kref)
15436 struct user_namespace *ns =
15437 container_of(kref, struct user_namespace, kref);
15438
15439+ /* FIXME: maybe move into destroyer? */ 15056+ /* FIXME: maybe move into destroyer? */
15440+ atomic_dec(&vs_global_user_ns); 15057+ atomic_dec(&vs_global_user_ns);
15441 INIT_WORK(&ns->destroyer, free_user_ns_work); 15058 put_user_ns(ns);
15442 schedule_work(&ns->destroyer);
15443 } 15059 }
15444diff -NurpP --minimal linux-3.4.57/kernel/utsname.c linux-3.4.57-vs2.3.3.9/kernel/utsname.c 15060
15445--- linux-3.4.57/kernel/utsname.c 2012-01-09 15:15:00.000000000 +0000 15061diff -NurpP --minimal linux-3.10.17/kernel/utsname.c linux-3.10.17-vs2.3.6.6/kernel/utsname.c
15446+++ linux-3.4.57-vs2.3.3.9/kernel/utsname.c 2012-05-21 16:15:05.000000000 +0000 15062--- linux-3.10.17/kernel/utsname.c 2013-07-14 17:01:35.000000000 +0000
15063+++ linux-3.10.17-vs2.3.6.6/kernel/utsname.c 2013-08-22 21:03:08.000000000 +0000
15447@@ -16,14 +16,17 @@ 15064@@ -16,14 +16,17 @@
15448 #include <linux/slab.h> 15065 #include <linux/slab.h>
15449 #include <linux/user_namespace.h> 15066 #include <linux/user_namespace.h>
15450 #include <linux/proc_fs.h> 15067 #include <linux/proc_ns.h>
15451+#include <linux/vserver/global.h> 15068+#include <linux/vserver/global.h>
15452 15069
15453 static struct uts_namespace *create_uts_ns(void) 15070 static struct uts_namespace *create_uts_ns(void)
@@ -15456,66 +15073,26 @@ diff -NurpP --minimal linux-3.4.57/kernel/utsname.c linux-3.4.57-vs2.3.3.9/kerne
15456 15073
15457 uts_ns = kmalloc(sizeof(struct uts_namespace), GFP_KERNEL); 15074 uts_ns = kmalloc(sizeof(struct uts_namespace), GFP_KERNEL);
15458- if (uts_ns) 15075- if (uts_ns)
15076- kref_init(&uts_ns->kref);
15459+ if (uts_ns) { 15077+ if (uts_ns) {
15460 kref_init(&uts_ns->kref); 15078+ kref_init(&uts_ns->kref);
15461+ atomic_inc(&vs_global_uts_ns); 15079+ atomic_inc(&vs_global_uts_ns);
15462+ } 15080+ }
15463 return uts_ns; 15081 return uts_ns;
15464 } 15082 }
15465 15083
15466@@ -32,8 +35,8 @@ static struct uts_namespace *create_uts_ 15084@@ -85,6 +88,7 @@ void free_uts_ns(struct kref *kref)
15467 * @old_ns: namespace to clone
15468 * Return NULL on error (failure to kmalloc), new ns otherwise
15469 */
15470-static struct uts_namespace *clone_uts_ns(struct task_struct *tsk,
15471- struct uts_namespace *old_ns)
15472+static struct uts_namespace *clone_uts_ns(struct uts_namespace *old_ns,
15473+ struct user_namespace *old_user)
15474 {
15475 struct uts_namespace *ns;
15476
15477@@ -43,7 +46,7 @@ static struct uts_namespace *clone_uts_n
15478
15479 down_read(&uts_sem);
15480 memcpy(&ns->name, &old_ns->name, sizeof(ns->name));
15481- ns->user_ns = get_user_ns(task_cred_xxx(tsk, user)->user_ns);
15482+ ns->user_ns = get_user_ns(old_user);
15483 up_read(&uts_sem);
15484 return ns;
15485 }
15486@@ -55,9 +58,9 @@ static struct uts_namespace *clone_uts_n
15487 * versa.
15488 */
15489 struct uts_namespace *copy_utsname(unsigned long flags,
15490- struct task_struct *tsk)
15491+ struct uts_namespace *old_ns,
15492+ struct user_namespace *user_ns)
15493 {
15494- struct uts_namespace *old_ns = tsk->nsproxy->uts_ns;
15495 struct uts_namespace *new_ns;
15496
15497 BUG_ON(!old_ns);
15498@@ -66,7 +69,7 @@ struct uts_namespace *copy_utsname(unsig
15499 if (!(flags & CLONE_NEWUTS))
15500 return old_ns;
15501
15502- new_ns = clone_uts_ns(tsk, old_ns);
15503+ new_ns = clone_uts_ns(old_ns, user_ns);
15504
15505 put_uts_ns(old_ns);
15506 return new_ns;
15507@@ -78,6 +81,7 @@ void free_uts_ns(struct kref *kref)
15508
15509 ns = container_of(kref, struct uts_namespace, kref); 15085 ns = container_of(kref, struct uts_namespace, kref);
15510 put_user_ns(ns->user_ns); 15086 put_user_ns(ns->user_ns);
15087 proc_free_inum(ns->proc_inum);
15511+ atomic_dec(&vs_global_uts_ns); 15088+ atomic_dec(&vs_global_uts_ns);
15512 kfree(ns); 15089 kfree(ns);
15513 } 15090 }
15514 15091
15515diff -NurpP --minimal linux-3.4.57/kernel/vserver/Kconfig linux-3.4.57-vs2.3.3.9/kernel/vserver/Kconfig 15092diff -NurpP --minimal linux-3.10.17/kernel/vserver/Kconfig linux-3.10.17-vs2.3.6.6/kernel/vserver/Kconfig
15516--- linux-3.4.57/kernel/vserver/Kconfig 1970-01-01 00:00:00.000000000 +0000 15093--- linux-3.10.17/kernel/vserver/Kconfig 1970-01-01 00:00:00.000000000 +0000
15517+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/Kconfig 2012-05-21 16:15:05.000000000 +0000 15094+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/Kconfig 2013-08-22 20:30:00.000000000 +0000
15518@@ -0,0 +1,224 @@ 15095@@ -0,0 +1,233 @@
15519+# 15096+#
15520+# Linux VServer configuration 15097+# Linux VServer configuration
15521+# 15098+#
@@ -15694,6 +15271,15 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/Kconfig linux-3.4.57-vs2.3.3.9
15694+ This allows you to specify the number of entries in 15271+ This allows you to specify the number of entries in
15695+ the per-CPU history buffer. 15272+ the per-CPU history buffer.
15696+ 15273+
15274+config VSERVER_EXTRA_MNT_CHECK
15275+ bool "Extra Checks for Reachability"
15276+ default n
15277+ help
15278+ Set this to yes if you want to do extra checks for
15279+ vfsmount reachability in the proc filesystem code.
15280+ This shouldn't be required on any setup utilizing
15281+ mnt namespaces.
15282+
15697+choice 15283+choice
15698+ prompt "Quotes used in debug and warn messages" 15284+ prompt "Quotes used in debug and warn messages"
15699+ default QUOTES_ISO8859 15285+ default QUOTES_ISO8859
@@ -15740,9 +15326,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/Kconfig linux-3.4.57-vs2.3.3.9
15740+ bool 15326+ bool
15741+ default n 15327+ default n
15742+ 15328+
15743diff -NurpP --minimal linux-3.4.57/kernel/vserver/Makefile linux-3.4.57-vs2.3.3.9/kernel/vserver/Makefile 15329diff -NurpP --minimal linux-3.10.17/kernel/vserver/Makefile linux-3.10.17-vs2.3.6.6/kernel/vserver/Makefile
15744--- linux-3.4.57/kernel/vserver/Makefile 1970-01-01 00:00:00.000000000 +0000 15330--- linux-3.10.17/kernel/vserver/Makefile 1970-01-01 00:00:00.000000000 +0000
15745+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/Makefile 2012-05-21 16:15:05.000000000 +0000 15331+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/Makefile 2013-08-22 20:30:00.000000000 +0000
15746@@ -0,0 +1,18 @@ 15332@@ -0,0 +1,18 @@
15747+# 15333+#
15748+# Makefile for the Linux vserver routines. 15334+# Makefile for the Linux vserver routines.
@@ -15762,9 +15348,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/Makefile linux-3.4.57-vs2.3.3.
15762+vserver-$(CONFIG_VSERVER_MONITOR) += monitor.o 15348+vserver-$(CONFIG_VSERVER_MONITOR) += monitor.o
15763+vserver-$(CONFIG_VSERVER_DEVICE) += device.o 15349+vserver-$(CONFIG_VSERVER_DEVICE) += device.o
15764+ 15350+
15765diff -NurpP --minimal linux-3.4.57/kernel/vserver/cacct.c linux-3.4.57-vs2.3.3.9/kernel/vserver/cacct.c 15351diff -NurpP --minimal linux-3.10.17/kernel/vserver/cacct.c linux-3.10.17-vs2.3.6.6/kernel/vserver/cacct.c
15766--- linux-3.4.57/kernel/vserver/cacct.c 1970-01-01 00:00:00.000000000 +0000 15352--- linux-3.10.17/kernel/vserver/cacct.c 1970-01-01 00:00:00.000000000 +0000
15767+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/cacct.c 2012-05-21 16:15:05.000000000 +0000 15353+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/cacct.c 2013-08-22 20:30:00.000000000 +0000
15768@@ -0,0 +1,42 @@ 15354@@ -0,0 +1,42 @@
15769+/* 15355+/*
15770+ * linux/kernel/vserver/cacct.c 15356+ * linux/kernel/vserver/cacct.c
@@ -15808,9 +15394,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/cacct.c linux-3.4.57-vs2.3.3.9
15808+ return 0; 15394+ return 0;
15809+} 15395+}
15810+ 15396+
15811diff -NurpP --minimal linux-3.4.57/kernel/vserver/cacct_init.h linux-3.4.57-vs2.3.3.9/kernel/vserver/cacct_init.h 15397diff -NurpP --minimal linux-3.10.17/kernel/vserver/cacct_init.h linux-3.10.17-vs2.3.6.6/kernel/vserver/cacct_init.h
15812--- linux-3.4.57/kernel/vserver/cacct_init.h 1970-01-01 00:00:00.000000000 +0000 15398--- linux-3.10.17/kernel/vserver/cacct_init.h 1970-01-01 00:00:00.000000000 +0000
15813+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/cacct_init.h 2012-05-21 16:15:05.000000000 +0000 15399+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/cacct_init.h 2013-08-22 20:30:00.000000000 +0000
15814@@ -0,0 +1,25 @@ 15400@@ -0,0 +1,25 @@
15815+ 15401+
15816+ 15402+
@@ -15837,9 +15423,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/cacct_init.h linux-3.4.57-vs2.
15837+ return; 15423+ return;
15838+} 15424+}
15839+ 15425+
15840diff -NurpP --minimal linux-3.4.57/kernel/vserver/cacct_proc.h linux-3.4.57-vs2.3.3.9/kernel/vserver/cacct_proc.h 15426diff -NurpP --minimal linux-3.10.17/kernel/vserver/cacct_proc.h linux-3.10.17-vs2.3.6.6/kernel/vserver/cacct_proc.h
15841--- linux-3.4.57/kernel/vserver/cacct_proc.h 1970-01-01 00:00:00.000000000 +0000 15427--- linux-3.10.17/kernel/vserver/cacct_proc.h 1970-01-01 00:00:00.000000000 +0000
15842+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/cacct_proc.h 2012-05-21 16:15:05.000000000 +0000 15428+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/cacct_proc.h 2013-08-22 20:30:00.000000000 +0000
15843@@ -0,0 +1,53 @@ 15429@@ -0,0 +1,53 @@
15844+#ifndef _VX_CACCT_PROC_H 15430+#ifndef _VX_CACCT_PROC_H
15845+#define _VX_CACCT_PROC_H 15431+#define _VX_CACCT_PROC_H
@@ -15894,9 +15480,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/cacct_proc.h linux-3.4.57-vs2.
15894+} 15480+}
15895+ 15481+
15896+#endif /* _VX_CACCT_PROC_H */ 15482+#endif /* _VX_CACCT_PROC_H */
15897diff -NurpP --minimal linux-3.4.57/kernel/vserver/context.c linux-3.4.57-vs2.3.3.9/kernel/vserver/context.c 15483diff -NurpP --minimal linux-3.10.17/kernel/vserver/context.c linux-3.10.17-vs2.3.6.6/kernel/vserver/context.c
15898--- linux-3.4.57/kernel/vserver/context.c 1970-01-01 00:00:00.000000000 +0000 15484--- linux-3.10.17/kernel/vserver/context.c 1970-01-01 00:00:00.000000000 +0000
15899+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/context.c 2012-06-28 14:45:48.000000000 +0000 15485+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/context.c 2013-08-22 20:30:00.000000000 +0000
15900@@ -0,0 +1,1119 @@ 15486@@ -0,0 +1,1119 @@
15901+/* 15487+/*
15902+ * linux/kernel/vserver/context.c 15488+ * linux/kernel/vserver/context.c
@@ -15970,7 +15556,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/context.c linux-3.4.57-vs2.3.3
15970+ * allocate an initialized vx_info struct 15556+ * allocate an initialized vx_info struct
15971+ * doesn't make it visible (hash) */ 15557+ * doesn't make it visible (hash) */
15972+ 15558+
15973+static struct vx_info *__alloc_vx_info(xid_t xid) 15559+static struct vx_info *__alloc_vx_info(vxid_t xid)
15974+{ 15560+{
15975+ struct vx_info *new = NULL; 15561+ struct vx_info *new = NULL;
15976+ int cpu, index; 15562+ int cpu, index;
@@ -16169,7 +15755,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/context.c linux-3.4.57-vs2.3.3
16169+static DEFINE_SPINLOCK(vx_info_hash_lock); 15755+static DEFINE_SPINLOCK(vx_info_hash_lock);
16170+ 15756+
16171+ 15757+
16172+static inline unsigned int __hashval(xid_t xid) 15758+static inline unsigned int __hashval(vxid_t xid)
16173+{ 15759+{
16174+ return (xid % VX_HASH_SIZE); 15760+ return (xid % VX_HASH_SIZE);
16175+} 15761+}
@@ -16233,7 +15819,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/context.c linux-3.4.57-vs2.3.3
16233+ * requires the hash_lock to be held 15819+ * requires the hash_lock to be held
16234+ * doesn't increment the vx_refcnt */ 15820+ * doesn't increment the vx_refcnt */
16235+ 15821+
16236+static inline struct vx_info *__lookup_vx_info(xid_t xid) 15822+static inline struct vx_info *__lookup_vx_info(vxid_t xid)
16237+{ 15823+{
16238+ struct hlist_head *head = &vx_info_hash[__hashval(xid)]; 15824+ struct hlist_head *head = &vx_info_hash[__hashval(xid)];
16239+ struct hlist_node *pos; 15825+ struct hlist_node *pos;
@@ -16335,7 +15921,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/context.c linux-3.4.57-vs2.3.3
16335+ 15921+
16336+ * verify that xid is still hashed */ 15922+ * verify that xid is still hashed */
16337+ 15923+
16338+int xid_is_hashed(xid_t xid) 15924+int xid_is_hashed(vxid_t xid)
16339+{ 15925+{
16340+ int hashed; 15926+ int hashed;
16341+ 15927+
@@ -16551,7 +16137,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/context.c linux-3.4.57-vs2.3.3
16551+ 16137+
16552+ ret = unshare_nsproxy_namespaces( 16138+ ret = unshare_nsproxy_namespaces(
16553+ CLONE_NEWUTS | CLONE_NEWIPC | CLONE_NEWUSER, 16139+ CLONE_NEWUTS | CLONE_NEWIPC | CLONE_NEWUSER,
16554+ &new_nsp, NULL); 16140+ &new_nsp, NULL, NULL);
16555+ if (ret) 16141+ if (ret)
16556+ goto out; 16142+ goto out;
16557+ 16143+
@@ -16690,7 +16276,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/context.c linux-3.4.57-vs2.3.3
16690+ 16276+
16691+int vc_task_xid(uint32_t id) 16277+int vc_task_xid(uint32_t id)
16692+{ 16278+{
16693+ xid_t xid; 16279+ vxid_t xid;
16694+ 16280+
16695+ if (id) { 16281+ if (id) {
16696+ struct task_struct *tsk; 16282+ struct task_struct *tsk;
@@ -17017,9 +16603,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/context.c linux-3.4.57-vs2.3.3
17017+ 16603+
17018+EXPORT_SYMBOL_GPL(free_vx_info); 16604+EXPORT_SYMBOL_GPL(free_vx_info);
17019+ 16605+
17020diff -NurpP --minimal linux-3.4.57/kernel/vserver/cvirt.c linux-3.4.57-vs2.3.3.9/kernel/vserver/cvirt.c 16606diff -NurpP --minimal linux-3.10.17/kernel/vserver/cvirt.c linux-3.10.17-vs2.3.6.6/kernel/vserver/cvirt.c
17021--- linux-3.4.57/kernel/vserver/cvirt.c 1970-01-01 00:00:00.000000000 +0000 16607--- linux-3.10.17/kernel/vserver/cvirt.c 1970-01-01 00:00:00.000000000 +0000
17022+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/cvirt.c 2012-05-21 16:15:05.000000000 +0000 16608+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/cvirt.c 2013-08-22 20:30:00.000000000 +0000
17023@@ -0,0 +1,313 @@ 16609@@ -0,0 +1,313 @@
17024+/* 16610+/*
17025+ * linux/kernel/vserver/cvirt.c 16611+ * linux/kernel/vserver/cvirt.c
@@ -17334,9 +16920,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/cvirt.c linux-3.4.57-vs2.3.3.9
17334+ 16920+
17335+#endif 16921+#endif
17336+ 16922+
17337diff -NurpP --minimal linux-3.4.57/kernel/vserver/cvirt_init.h linux-3.4.57-vs2.3.3.9/kernel/vserver/cvirt_init.h 16923diff -NurpP --minimal linux-3.10.17/kernel/vserver/cvirt_init.h linux-3.10.17-vs2.3.6.6/kernel/vserver/cvirt_init.h
17338--- linux-3.4.57/kernel/vserver/cvirt_init.h 1970-01-01 00:00:00.000000000 +0000 16924--- linux-3.10.17/kernel/vserver/cvirt_init.h 1970-01-01 00:00:00.000000000 +0000
17339+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/cvirt_init.h 2012-05-21 16:15:05.000000000 +0000 16925+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/cvirt_init.h 2013-08-22 20:30:00.000000000 +0000
17340@@ -0,0 +1,70 @@ 16926@@ -0,0 +1,70 @@
17341+ 16927+
17342+ 16928+
@@ -17408,9 +16994,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/cvirt_init.h linux-3.4.57-vs2.
17408+ return; 16994+ return;
17409+} 16995+}
17410+ 16996+
17411diff -NurpP --minimal linux-3.4.57/kernel/vserver/cvirt_proc.h linux-3.4.57-vs2.3.3.9/kernel/vserver/cvirt_proc.h 16997diff -NurpP --minimal linux-3.10.17/kernel/vserver/cvirt_proc.h linux-3.10.17-vs2.3.6.6/kernel/vserver/cvirt_proc.h
17412--- linux-3.4.57/kernel/vserver/cvirt_proc.h 1970-01-01 00:00:00.000000000 +0000 16998--- linux-3.10.17/kernel/vserver/cvirt_proc.h 1970-01-01 00:00:00.000000000 +0000
17413+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/cvirt_proc.h 2013-08-13 17:48:39.000000000 +0000 16999+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/cvirt_proc.h 2013-08-22 20:30:00.000000000 +0000
17414@@ -0,0 +1,123 @@ 17000@@ -0,0 +1,123 @@
17415+#ifndef _VX_CVIRT_PROC_H 17001+#ifndef _VX_CVIRT_PROC_H
17416+#define _VX_CVIRT_PROC_H 17002+#define _VX_CVIRT_PROC_H
@@ -17535,9 +17121,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/cvirt_proc.h linux-3.4.57-vs2.
17535+} 17121+}
17536+ 17122+
17537+#endif /* _VX_CVIRT_PROC_H */ 17123+#endif /* _VX_CVIRT_PROC_H */
17538diff -NurpP --minimal linux-3.4.57/kernel/vserver/debug.c linux-3.4.57-vs2.3.3.9/kernel/vserver/debug.c 17124diff -NurpP --minimal linux-3.10.17/kernel/vserver/debug.c linux-3.10.17-vs2.3.6.6/kernel/vserver/debug.c
17539--- linux-3.4.57/kernel/vserver/debug.c 1970-01-01 00:00:00.000000000 +0000 17125--- linux-3.10.17/kernel/vserver/debug.c 1970-01-01 00:00:00.000000000 +0000
17540+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/debug.c 2012-05-21 16:15:05.000000000 +0000 17126+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/debug.c 2013-08-22 20:30:00.000000000 +0000
17541@@ -0,0 +1,32 @@ 17127@@ -0,0 +1,32 @@
17542+/* 17128+/*
17543+ * kernel/vserver/debug.c 17129+ * kernel/vserver/debug.c
@@ -17571,9 +17157,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/debug.c linux-3.4.57-vs2.3.3.9
17571+ 17157+
17572+EXPORT_SYMBOL_GPL(dump_vx_info); 17158+EXPORT_SYMBOL_GPL(dump_vx_info);
17573+ 17159+
17574diff -NurpP --minimal linux-3.4.57/kernel/vserver/device.c linux-3.4.57-vs2.3.3.9/kernel/vserver/device.c 17160diff -NurpP --minimal linux-3.10.17/kernel/vserver/device.c linux-3.10.17-vs2.3.6.6/kernel/vserver/device.c
17575--- linux-3.4.57/kernel/vserver/device.c 1970-01-01 00:00:00.000000000 +0000 17161--- linux-3.10.17/kernel/vserver/device.c 1970-01-01 00:00:00.000000000 +0000
17576+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/device.c 2012-05-21 16:15:05.000000000 +0000 17162+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/device.c 2013-08-22 20:30:00.000000000 +0000
17577@@ -0,0 +1,443 @@ 17163@@ -0,0 +1,443 @@
17578+/* 17164+/*
17579+ * linux/kernel/vserver/device.c 17165+ * linux/kernel/vserver/device.c
@@ -17613,7 +17199,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/device.c linux-3.4.57-vs2.3.3.
17613+ } u; 17199+ } u;
17614+#define dm_hlist u.hlist 17200+#define dm_hlist u.hlist
17615+#define dm_list u.list 17201+#define dm_list u.list
17616+ xid_t xid; 17202+ vxid_t xid;
17617+ dev_t device; 17203+ dev_t device;
17618+ struct vx_dmap_target target; 17204+ struct vx_dmap_target target;
17619+}; 17205+};
@@ -17725,7 +17311,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/device.c linux-3.4.57-vs2.3.3.
17725+ * 17311+ *
17726+ * caller must hold hash_lock 17312+ * caller must hold hash_lock
17727+ */ 17313+ */
17728+static inline int __find_mapping(xid_t xid, dev_t device, umode_t mode, 17314+static inline int __find_mapping(vxid_t xid, dev_t device, umode_t mode,
17729+ struct vs_mapping **local, struct vs_mapping **global) 17315+ struct vs_mapping **local, struct vs_mapping **global)
17730+{ 17316+{
17731+ struct hlist_head *hash = dmap_main_hash; 17317+ struct hlist_head *hash = dmap_main_hash;
@@ -17767,7 +17353,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/device.c linux-3.4.57-vs2.3.3.
17767+ struct vs_mapping *vdm, *global; 17353+ struct vs_mapping *vdm, *global;
17768+ struct vx_dmap_target *vdmt; 17354+ struct vx_dmap_target *vdmt;
17769+ int ret = 0; 17355+ int ret = 0;
17770+ xid_t xid = vxi->vx_id; 17356+ vxid_t xid = vxi->vx_id;
17771+ int index; 17357+ int index;
17772+ 17358+
17773+ spin_lock(hash_lock); 17359+ spin_lock(hash_lock);
@@ -18018,10 +17604,10 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/device.c linux-3.4.57-vs2.3.3.
18018+#endif /* CONFIG_COMPAT */ 17604+#endif /* CONFIG_COMPAT */
18019+ 17605+
18020+ 17606+
18021diff -NurpP --minimal linux-3.4.57/kernel/vserver/dlimit.c linux-3.4.57-vs2.3.3.9/kernel/vserver/dlimit.c 17607diff -NurpP --minimal linux-3.10.17/kernel/vserver/dlimit.c linux-3.10.17-vs2.3.6.6/kernel/vserver/dlimit.c
18022--- linux-3.4.57/kernel/vserver/dlimit.c 1970-01-01 00:00:00.000000000 +0000 17608--- linux-3.10.17/kernel/vserver/dlimit.c 1970-01-01 00:00:00.000000000 +0000
18023+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/dlimit.c 2012-05-21 16:15:05.000000000 +0000 17609+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/dlimit.c 2013-08-22 20:30:00.000000000 +0000
18024@@ -0,0 +1,531 @@ 17610@@ -0,0 +1,528 @@
18025+/* 17611+/*
18026+ * linux/kernel/vserver/dlimit.c 17612+ * linux/kernel/vserver/dlimit.c
18027+ * 17613+ *
@@ -18051,7 +17637,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/dlimit.c linux-3.4.57-vs2.3.3.
18051+ * allocate an initialized dl_info struct 17637+ * allocate an initialized dl_info struct
18052+ * doesn't make it visible (hash) */ 17638+ * doesn't make it visible (hash) */
18053+ 17639+
18054+static struct dl_info *__alloc_dl_info(struct super_block *sb, tag_t tag) 17640+static struct dl_info *__alloc_dl_info(struct super_block *sb, vtag_t tag)
18055+{ 17641+{
18056+ struct dl_info *new = NULL; 17642+ struct dl_info *new = NULL;
18057+ 17643+
@@ -18108,7 +17694,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/dlimit.c linux-3.4.57-vs2.3.3.
18108+static DEFINE_SPINLOCK(dl_info_hash_lock); 17694+static DEFINE_SPINLOCK(dl_info_hash_lock);
18109+ 17695+
18110+ 17696+
18111+static inline unsigned int __hashval(struct super_block *sb, tag_t tag) 17697+static inline unsigned int __hashval(struct super_block *sb, vtag_t tag)
18112+{ 17698+{
18113+ return ((tag ^ (unsigned long)sb) % DL_HASH_SIZE); 17699+ return ((tag ^ (unsigned long)sb) % DL_HASH_SIZE);
18114+} 17700+}
@@ -18150,23 +17736,20 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/dlimit.c linux-3.4.57-vs2.3.3.
18150+ * requires the rcu_read_lock() 17736+ * requires the rcu_read_lock()
18151+ * doesn't increment the dl_refcnt */ 17737+ * doesn't increment the dl_refcnt */
18152+ 17738+
18153+static inline struct dl_info *__lookup_dl_info(struct super_block *sb, tag_t tag) 17739+static inline struct dl_info *__lookup_dl_info(struct super_block *sb, vtag_t tag)
18154+{ 17740+{
18155+ struct hlist_head *head = &dl_info_hash[__hashval(sb, tag)]; 17741+ struct hlist_head *head = &dl_info_hash[__hashval(sb, tag)];
18156+ struct hlist_node *pos;
18157+ struct dl_info *dli; 17742+ struct dl_info *dli;
18158+ 17743+
18159+ hlist_for_each_entry_rcu(dli, pos, head, dl_hlist) { 17744+ hlist_for_each_entry_rcu(dli, head, dl_hlist) {
18160+ 17745+ if (dli->dl_tag == tag && dli->dl_sb == sb)
18161+ if (dli->dl_tag == tag && dli->dl_sb == sb) {
18162+ return dli; 17746+ return dli;
18163+ }
18164+ } 17747+ }
18165+ return NULL; 17748+ return NULL;
18166+} 17749+}
18167+ 17750+
18168+ 17751+
18169+struct dl_info *locate_dl_info(struct super_block *sb, tag_t tag) 17752+struct dl_info *locate_dl_info(struct super_block *sb, vtag_t tag)
18170+{ 17753+{
18171+ struct dl_info *dli; 17754+ struct dl_info *dli;
18172+ 17755+
@@ -18553,10 +18136,10 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/dlimit.c linux-3.4.57-vs2.3.3.
18553+EXPORT_SYMBOL_GPL(locate_dl_info); 18136+EXPORT_SYMBOL_GPL(locate_dl_info);
18554+EXPORT_SYMBOL_GPL(rcu_free_dl_info); 18137+EXPORT_SYMBOL_GPL(rcu_free_dl_info);
18555+ 18138+
18556diff -NurpP --minimal linux-3.4.57/kernel/vserver/helper.c linux-3.4.57-vs2.3.3.9/kernel/vserver/helper.c 18139diff -NurpP --minimal linux-3.10.17/kernel/vserver/helper.c linux-3.10.17-vs2.3.6.6/kernel/vserver/helper.c
18557--- linux-3.4.57/kernel/vserver/helper.c 1970-01-01 00:00:00.000000000 +0000 18140--- linux-3.10.17/kernel/vserver/helper.c 1970-01-01 00:00:00.000000000 +0000
18558+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/helper.c 2012-09-16 18:49:44.000000000 +0000 18141+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/helper.c 2013-08-23 00:55:48.000000000 +0000
18559@@ -0,0 +1,229 @@ 18142@@ -0,0 +1,242 @@
18560+/* 18143+/*
18561+ * linux/kernel/vserver/helper.c 18144+ * linux/kernel/vserver/helper.c
18562+ * 18145+ *
@@ -18579,17 +18162,29 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/helper.c linux-3.4.57-vs2.3.3.
18579+ 18162+
18580+static int vshelper_init(struct subprocess_info *info, struct cred *new_cred) 18163+static int vshelper_init(struct subprocess_info *info, struct cred *new_cred)
18581+{ 18164+{
18582+ current->flags &= ~PF_THREAD_BOUND; 18165+ current->flags &= ~PF_NO_SETAFFINITY;
18583+ return 0; 18166+ return 0;
18584+} 18167+}
18585+ 18168+
18169+static int vs_call_usermodehelper(char *path, char **argv, char **envp, int wait)
18170+{
18171+ struct subprocess_info *info;
18172+ gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? GFP_ATOMIC : GFP_KERNEL;
18173+
18174+ info = call_usermodehelper_setup(path, argv, envp, gfp_mask,
18175+ vshelper_init, NULL, NULL);
18176+ if (info == NULL)
18177+ return -ENOMEM;
18178+
18179+ return call_usermodehelper_exec(info, wait);
18180+}
18181+
18586+static int do_vshelper(char *name, char *argv[], char *envp[], int sync) 18182+static int do_vshelper(char *name, char *argv[], char *envp[], int sync)
18587+{ 18183+{
18588+ int ret; 18184+ int ret;
18589+ 18185+
18590+ if ((ret = call_usermodehelper_fns(name, argv, envp, 18186+ if ((ret = vs_call_usermodehelper(name, argv, envp,
18591+ sync ? UMH_WAIT_PROC : UMH_WAIT_EXEC, 18187+ sync ? UMH_WAIT_PROC : UMH_WAIT_EXEC))) {
18592+ vshelper_init, NULL, NULL))) {
18593+ printk(KERN_WARNING "%s: (%s %s) returned %s with %d\n", 18188+ printk(KERN_WARNING "%s: (%s %s) returned %s with %d\n",
18594+ name, argv[1], argv[2], 18189+ name, argv[1], argv[2],
18595+ sync ? "sync" : "async", ret); 18190+ sync ? "sync" : "async", ret);
@@ -18630,7 +18225,8 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/helper.c linux-3.4.57-vs2.3.3.
18630+ snprintf(id_buf, sizeof(id_buf), "%d", vxi->vx_id); 18225+ snprintf(id_buf, sizeof(id_buf), "%d", vxi->vx_id);
18631+ 18226+
18632+ snprintf(cmd_buf, sizeof(cmd_buf), "VS_CMD=%08x", cmd); 18227+ snprintf(cmd_buf, sizeof(cmd_buf), "VS_CMD=%08x", cmd);
18633+ snprintf(uid_buf, sizeof(uid_buf), "VS_UID=%d", current_uid()); 18228+ snprintf(uid_buf, sizeof(uid_buf), "VS_UID=%d",
18229+ from_kuid(&init_user_ns, current_uid()));
18634+ snprintf(pid_buf, sizeof(pid_buf), "VS_PID=%d", current->pid); 18230+ snprintf(pid_buf, sizeof(pid_buf), "VS_PID=%d", current->pid);
18635+ 18231+
18636+ switch (cmd) { 18232+ switch (cmd) {
@@ -18786,9 +18382,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/helper.c linux-3.4.57-vs2.3.3.
18786+ return do_vshelper(vshelper_path, argv, envp, 1); 18382+ return do_vshelper(vshelper_path, argv, envp, 1);
18787+} 18383+}
18788+ 18384+
18789diff -NurpP --minimal linux-3.4.57/kernel/vserver/history.c linux-3.4.57-vs2.3.3.9/kernel/vserver/history.c 18385diff -NurpP --minimal linux-3.10.17/kernel/vserver/history.c linux-3.10.17-vs2.3.6.6/kernel/vserver/history.c
18790--- linux-3.4.57/kernel/vserver/history.c 1970-01-01 00:00:00.000000000 +0000 18386--- linux-3.10.17/kernel/vserver/history.c 1970-01-01 00:00:00.000000000 +0000
18791+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/history.c 2012-05-21 16:15:05.000000000 +0000 18387+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/history.c 2013-08-22 20:30:00.000000000 +0000
18792@@ -0,0 +1,258 @@ 18388@@ -0,0 +1,258 @@
18793+/* 18389+/*
18794+ * kernel/vserver/history.c 18390+ * kernel/vserver/history.c
@@ -19048,10 +18644,10 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/history.c linux-3.4.57-vs2.3.3
19048+ 18644+
19049+#endif /* CONFIG_COMPAT */ 18645+#endif /* CONFIG_COMPAT */
19050+ 18646+
19051diff -NurpP --minimal linux-3.4.57/kernel/vserver/inet.c linux-3.4.57-vs2.3.3.9/kernel/vserver/inet.c 18647diff -NurpP --minimal linux-3.10.17/kernel/vserver/inet.c linux-3.10.17-vs2.3.6.6/kernel/vserver/inet.c
19052--- linux-3.4.57/kernel/vserver/inet.c 1970-01-01 00:00:00.000000000 +0000 18648--- linux-3.10.17/kernel/vserver/inet.c 1970-01-01 00:00:00.000000000 +0000
19053+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/inet.c 2012-05-21 16:15:05.000000000 +0000 18649+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/inet.c 2013-08-22 20:30:00.000000000 +0000
19054@@ -0,0 +1,226 @@ 18650@@ -0,0 +1,236 @@
19055+ 18651+
19056+#include <linux/in.h> 18652+#include <linux/in.h>
19057+#include <linux/inetdevice.h> 18653+#include <linux/inetdevice.h>
@@ -19071,13 +18667,16 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/inet.c linux-3.4.57-vs2.3.3.9/
19071+ ret = 1; 18667+ ret = 1;
19072+ else { 18668+ else {
19073+ struct nx_addr_v4 *ptr; 18669+ struct nx_addr_v4 *ptr;
18670+ unsigned long irqflags;
19074+ 18671+
18672+ spin_lock_irqsave(&nxi1->addr_lock, irqflags);
19075+ for (ptr = &nxi1->v4; ptr; ptr = ptr->next) { 18673+ for (ptr = &nxi1->v4; ptr; ptr = ptr->next) {
19076+ if (v4_nx_addr_in_nx_info(nxi2, ptr, -1)) { 18674+ if (v4_nx_addr_in_nx_info(nxi2, ptr, -1)) {
19077+ ret = 1; 18675+ ret = 1;
19078+ break; 18676+ break;
19079+ } 18677+ }
19080+ } 18678+ }
18679+ spin_unlock_irqrestore(&nxi1->addr_lock, irqflags);
19081+ } 18680+ }
19082+ 18681+
19083+ vxdprintk(VXD_CBIT(net, 2), 18682+ vxdprintk(VXD_CBIT(net, 2),
@@ -19098,13 +18697,16 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/inet.c linux-3.4.57-vs2.3.3.9/
19098+ ret = 1; 18697+ ret = 1;
19099+ else { 18698+ else {
19100+ struct nx_addr_v6 *ptr; 18699+ struct nx_addr_v6 *ptr;
18700+ unsigned long irqflags;
19101+ 18701+
18702+ spin_lock_irqsave(&nxi1->addr_lock, irqflags);
19102+ for (ptr = &nxi1->v6; ptr; ptr = ptr->next) { 18703+ for (ptr = &nxi1->v6; ptr; ptr = ptr->next) {
19103+ if (v6_nx_addr_in_nx_info(nxi2, ptr, -1)) { 18704+ if (v6_nx_addr_in_nx_info(nxi2, ptr, -1)) {
19104+ ret = 1; 18705+ ret = 1;
19105+ break; 18706+ break;
19106+ } 18707+ }
19107+ } 18708+ }
18709+ spin_unlock_irqrestore(&nxi1->addr_lock, irqflags);
19108+ } 18710+ }
19109+ 18711+
19110+ vxdprintk(VXD_CBIT(net, 2), 18712+ vxdprintk(VXD_CBIT(net, 2),
@@ -19228,6 +18830,8 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/inet.c linux-3.4.57-vs2.3.3.9/
19228+ goto found; 18830+ goto found;
19229+ } 18831+ }
19230+ 18832+
18833+ WARN_ON_ONCE(in_irq());
18834+ spin_lock_bh(&nxi->addr_lock);
19231+ for (ptr = &nxi->v4; ptr; ptr = ptr->next) { 18835+ for (ptr = &nxi->v4; ptr; ptr = ptr->next) {
19232+ __be32 primary = ptr->ip[0].s_addr; 18836+ __be32 primary = ptr->ip[0].s_addr;
19233+ __be32 mask = ptr->mask.s_addr; 18837+ __be32 mask = ptr->mask.s_addr;
@@ -19249,12 +18853,14 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/inet.c linux-3.4.57-vs2.3.3.9/
19249+ found = fl4->saddr; 18853+ found = fl4->saddr;
19250+ ip_rt_put(rt); 18854+ ip_rt_put(rt);
19251+ if (found == primary) 18855+ if (found == primary)
19252+ goto found; 18856+ goto found_unlock;
19253+ } 18857+ }
19254+ } 18858+ }
19255+ /* still no source ip? */ 18859+ /* still no source ip? */
19256+ found = ipv4_is_loopback(fl4->daddr) 18860+ found = ipv4_is_loopback(fl4->daddr)
19257+ ? IPI_LOOPBACK : nxi->v4.ip[0].s_addr; 18861+ ? IPI_LOOPBACK : nxi->v4.ip[0].s_addr;
18862+ found_unlock:
18863+ spin_unlock_bh(&nxi->addr_lock);
19258+ found: 18864+ found:
19259+ /* assign src ip to flow */ 18865+ /* assign src ip to flow */
19260+ fl4->saddr = found; 18866+ fl4->saddr = found;
@@ -19278,9 +18884,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/inet.c linux-3.4.57-vs2.3.3.9/
19278+ 18884+
19279+EXPORT_SYMBOL_GPL(ip_v4_find_src); 18885+EXPORT_SYMBOL_GPL(ip_v4_find_src);
19280+ 18886+
19281diff -NurpP --minimal linux-3.4.57/kernel/vserver/init.c linux-3.4.57-vs2.3.3.9/kernel/vserver/init.c 18887diff -NurpP --minimal linux-3.10.17/kernel/vserver/init.c linux-3.10.17-vs2.3.6.6/kernel/vserver/init.c
19282--- linux-3.4.57/kernel/vserver/init.c 1970-01-01 00:00:00.000000000 +0000 18888--- linux-3.10.17/kernel/vserver/init.c 1970-01-01 00:00:00.000000000 +0000
19283+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/init.c 2012-05-21 16:15:05.000000000 +0000 18889+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/init.c 2013-08-22 20:30:00.000000000 +0000
19284@@ -0,0 +1,45 @@ 18890@@ -0,0 +1,45 @@
19285+/* 18891+/*
19286+ * linux/kernel/init.c 18892+ * linux/kernel/init.c
@@ -19327,10 +18933,10 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/init.c linux-3.4.57-vs2.3.3.9/
19327+module_init(init_vserver); 18933+module_init(init_vserver);
19328+module_exit(exit_vserver); 18934+module_exit(exit_vserver);
19329+ 18935+
19330diff -NurpP --minimal linux-3.4.57/kernel/vserver/inode.c linux-3.4.57-vs2.3.3.9/kernel/vserver/inode.c 18936diff -NurpP --minimal linux-3.10.17/kernel/vserver/inode.c linux-3.10.17-vs2.3.6.6/kernel/vserver/inode.c
19331--- linux-3.4.57/kernel/vserver/inode.c 1970-01-01 00:00:00.000000000 +0000 18937--- linux-3.10.17/kernel/vserver/inode.c 1970-01-01 00:00:00.000000000 +0000
19332+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/inode.c 2012-05-21 16:15:05.000000000 +0000 18938+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/inode.c 2013-08-22 23:14:01.000000000 +0000
19333@@ -0,0 +1,437 @@ 18939@@ -0,0 +1,440 @@
19334+/* 18940+/*
19335+ * linux/kernel/vserver/inode.c 18941+ * linux/kernel/vserver/inode.c
19336+ * 18942+ *
@@ -19351,12 +18957,15 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/inode.c linux-3.4.57-vs2.3.3.9
19351+#include <linux/mount.h> 18957+#include <linux/mount.h>
19352+#include <linux/parser.h> 18958+#include <linux/parser.h>
19353+#include <linux/namei.h> 18959+#include <linux/namei.h>
18960+#include <linux/magic.h>
18961+#include <linux/slab.h>
19354+#include <linux/vserver/inode.h> 18962+#include <linux/vserver/inode.h>
19355+#include <linux/vserver/inode_cmd.h> 18963+#include <linux/vserver/inode_cmd.h>
19356+#include <linux/vs_base.h> 18964+#include <linux/vs_base.h>
19357+#include <linux/vs_tag.h> 18965+#include <linux/vs_tag.h>
19358+ 18966+
19359+#include <asm/uaccess.h> 18967+#include <asm/uaccess.h>
18968+#include <../../fs/proc/internal.h>
19360+ 18969+
19361+ 18970+
19362+static int __vc_get_iattr(struct inode *in, uint32_t *tag, uint32_t *flags, uint32_t *mask) 18971+static int __vc_get_iattr(struct inode *in, uint32_t *tag, uint32_t *flags, uint32_t *mask)
@@ -19377,7 +18986,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/inode.c linux-3.4.57-vs2.3.3.9
19377+ *mask |= IATTR_BARRIER; 18986+ *mask |= IATTR_BARRIER;
19378+ 18987+
19379+ if (IS_TAGGED(in)) { 18988+ if (IS_TAGGED(in)) {
19380+ *tag = in->i_tag; 18989+ *tag = i_tag_read(in);
19381+ *mask |= IATTR_TAG; 18990+ *mask |= IATTR_TAG;
19382+ } 18991+ }
19383+ 18992+
@@ -19395,7 +19004,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/inode.c linux-3.4.57-vs2.3.3.9
19395+ break; 19004+ break;
19396+ 19005+
19397+ case DEVPTS_SUPER_MAGIC: 19006+ case DEVPTS_SUPER_MAGIC:
19398+ *tag = in->i_tag; 19007+ *tag = i_tag_read(in);
19399+ *mask |= IATTR_TAG; 19008+ *mask |= IATTR_TAG;
19400+ break; 19009+ break;
19401+ 19010+
@@ -19500,7 +19109,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/inode.c linux-3.4.57-vs2.3.3.9
19500+ 19109+
19501+ mutex_lock(&in->i_mutex); 19110+ mutex_lock(&in->i_mutex);
19502+ if (*mask & IATTR_TAG) { 19111+ if (*mask & IATTR_TAG) {
19503+ attr.ia_tag = *tag; 19112+ attr.ia_tag = make_ktag(&init_user_ns, *tag);
19504+ attr.ia_valid |= ATTR_TAG; 19113+ attr.ia_valid |= ATTR_TAG;
19505+ } 19114+ }
19506+ 19115+
@@ -19672,7 +19281,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/inode.c linux-3.4.57-vs2.3.3.9
19672+ } 19281+ }
19673+} 19282+}
19674+ 19283+
19675+int dx_parse_tag(char *string, tag_t *tag, int remove, int *mnt_flags, 19284+int dx_parse_tag(char *string, vtag_t *tag, int remove, int *mnt_flags,
19676+ unsigned long *flags) 19285+ unsigned long *flags)
19677+{ 19286+{
19678+ int set = 0; 19287+ int set = 0;
@@ -19739,7 +19348,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/inode.c linux-3.4.57-vs2.3.3.9
19739+ 19348+
19740+void __dx_propagate_tag(struct nameidata *nd, struct inode *inode) 19349+void __dx_propagate_tag(struct nameidata *nd, struct inode *inode)
19741+{ 19350+{
19742+ tag_t new_tag = 0; 19351+ vtag_t new_tag = 0;
19743+ struct vfsmount *mnt; 19352+ struct vfsmount *mnt;
19744+ int propagate; 19353+ int propagate;
19745+ 19354+
@@ -19759,7 +19368,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/inode.c linux-3.4.57-vs2.3.3.9
19759+ new_tag, (propagate) ? 1 : 0); 19368+ new_tag, (propagate) ? 1 : 0);
19760+ 19369+
19761+ if (propagate) 19370+ if (propagate)
19762+ inode->i_tag = new_tag; 19371+ i_tag_write(inode, new_tag);
19763+} 19372+}
19764+ 19373+
19765+#include <linux/module.h> 19374+#include <linux/module.h>
@@ -19768,9 +19377,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/inode.c linux-3.4.57-vs2.3.3.9
19768+ 19377+
19769+#endif /* CONFIG_PROPAGATE */ 19378+#endif /* CONFIG_PROPAGATE */
19770+ 19379+
19771diff -NurpP --minimal linux-3.4.57/kernel/vserver/limit.c linux-3.4.57-vs2.3.3.9/kernel/vserver/limit.c 19380diff -NurpP --minimal linux-3.10.17/kernel/vserver/limit.c linux-3.10.17-vs2.3.6.6/kernel/vserver/limit.c
19772--- linux-3.4.57/kernel/vserver/limit.c 1970-01-01 00:00:00.000000000 +0000 19381--- linux-3.10.17/kernel/vserver/limit.c 1970-01-01 00:00:00.000000000 +0000
19773+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/limit.c 2012-09-01 09:15:21.000000000 +0000 19382+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/limit.c 2013-08-22 20:30:00.000000000 +0000
19774@@ -0,0 +1,345 @@ 19383@@ -0,0 +1,345 @@
19775+/* 19384+/*
19776+ * linux/kernel/vserver/limit.c 19385+ * linux/kernel/vserver/limit.c
@@ -20031,12 +19640,13 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/limit.c linux-3.4.57-vs2.3.3.9
20031+ 19640+
20032+void vx_vsi_meminfo(struct sysinfo *val) 19641+void vx_vsi_meminfo(struct sysinfo *val)
20033+{ 19642+{
20034+#ifdef CONFIG_CGROUP_MEM_RES_CTLR 19643+#ifdef CONFIG_MEMCG
20035+ struct mem_cgroup *mcg; 19644+ struct mem_cgroup *mcg;
20036+ u64 res_limit, res_usage; 19645+ u64 res_limit, res_usage;
20037+ 19646+
20038+ rcu_read_lock(); 19647+ rcu_read_lock();
20039+ mcg = mem_cgroup_from_task(current); 19648+ mcg = mem_cgroup_from_task(current);
19649+ rcu_read_unlock();
20040+ if (!mcg) 19650+ if (!mcg)
20041+ goto out; 19651+ goto out;
20042+ 19652+
@@ -20050,21 +19660,21 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/limit.c linux-3.4.57-vs2.3.3.9
20050+ val->totalhigh = 0; 19660+ val->totalhigh = 0;
20051+ val->freehigh = 0; 19661+ val->freehigh = 0;
20052+out: 19662+out:
20053+ rcu_read_unlock(); 19663+#endif /* CONFIG_MEMCG */
20054+#endif /* CONFIG_CGROUP_MEM_RES_CTLR */
20055+ return; 19664+ return;
20056+} 19665+}
20057+ 19666+
20058+void vx_vsi_swapinfo(struct sysinfo *val) 19667+void vx_vsi_swapinfo(struct sysinfo *val)
20059+{ 19668+{
20060+#ifdef CONFIG_CGROUP_MEM_RES_CTLR 19669+#ifdef CONFIG_MEMCG
20061+#ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP 19670+#ifdef CONFIG_MEMCG_SWAP
20062+ struct mem_cgroup *mcg; 19671+ struct mem_cgroup *mcg;
20063+ u64 res_limit, res_usage, memsw_limit, memsw_usage; 19672+ u64 res_limit, res_usage, memsw_limit, memsw_usage;
20064+ s64 swap_limit, swap_usage; 19673+ s64 swap_limit, swap_usage;
20065+ 19674+
20066+ rcu_read_lock(); 19675+ rcu_read_lock();
20067+ mcg = mem_cgroup_from_task(current); 19676+ mcg = mem_cgroup_from_task(current);
19677+ rcu_read_unlock();
20068+ if (!mcg) 19678+ if (!mcg)
20069+ goto out; 19679+ goto out;
20070+ 19680+
@@ -20090,36 +19700,35 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/limit.c linux-3.4.57-vs2.3.3.9
20090+ val->freeswap = (swap_usage < swap_limit) ? 19700+ val->freeswap = (swap_usage < swap_limit) ?
20091+ val->totalswap - (swap_usage >> PAGE_SHIFT) : 0; 19701+ val->totalswap - (swap_usage >> PAGE_SHIFT) : 0;
20092+out: 19702+out:
20093+ rcu_read_unlock(); 19703+#else /* !CONFIG_MEMCG_SWAP */
20094+#else /* !CONFIG_CGROUP_MEM_RES_CTLR_SWAP */
20095+ val->totalswap = 0; 19704+ val->totalswap = 0;
20096+ val->freeswap = 0; 19705+ val->freeswap = 0;
20097+#endif /* !CONFIG_CGROUP_MEM_RES_CTLR_SWAP */ 19706+#endif /* !CONFIG_MEMCG_SWAP */
20098+#endif /* CONFIG_CGROUP_MEM_RES_CTLR */ 19707+#endif /* CONFIG_MEMCG */
20099+ return; 19708+ return;
20100+} 19709+}
20101+ 19710+
20102+long vx_vsi_cached(struct sysinfo *val) 19711+long vx_vsi_cached(struct sysinfo *val)
20103+{ 19712+{
20104+ long cache = 0; 19713+ long cache = 0;
20105+#ifdef CONFIG_CGROUP_MEM_RES_CTLR 19714+#ifdef CONFIG_MEMCG
20106+ struct mem_cgroup *mcg; 19715+ struct mem_cgroup *mcg;
20107+ 19716+
20108+ rcu_read_lock(); 19717+ rcu_read_lock();
20109+ mcg = mem_cgroup_from_task(current); 19718+ mcg = mem_cgroup_from_task(current);
19719+ rcu_read_unlock();
20110+ if (!mcg) 19720+ if (!mcg)
20111+ goto out; 19721+ goto out;
20112+ 19722+
20113+ cache = mem_cgroup_stat_read_cache(mcg); 19723+ cache = mem_cgroup_stat_read_cache(mcg);
20114+out: 19724+out:
20115+ rcu_read_unlock();
20116+#endif 19725+#endif
20117+ return cache; 19726+ return cache;
20118+} 19727+}
20119+ 19728+
20120diff -NurpP --minimal linux-3.4.57/kernel/vserver/limit_init.h linux-3.4.57-vs2.3.3.9/kernel/vserver/limit_init.h 19729diff -NurpP --minimal linux-3.10.17/kernel/vserver/limit_init.h linux-3.10.17-vs2.3.6.6/kernel/vserver/limit_init.h
20121--- linux-3.4.57/kernel/vserver/limit_init.h 1970-01-01 00:00:00.000000000 +0000 19730--- linux-3.10.17/kernel/vserver/limit_init.h 1970-01-01 00:00:00.000000000 +0000
20122+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/limit_init.h 2012-05-21 16:15:05.000000000 +0000 19731+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/limit_init.h 2013-08-22 20:30:00.000000000 +0000
20123@@ -0,0 +1,31 @@ 19732@@ -0,0 +1,31 @@
20124+ 19733+
20125+ 19734+
@@ -20152,9 +19761,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/limit_init.h linux-3.4.57-vs2.
20152+ } 19761+ }
20153+} 19762+}
20154+ 19763+
20155diff -NurpP --minimal linux-3.4.57/kernel/vserver/limit_proc.h linux-3.4.57-vs2.3.3.9/kernel/vserver/limit_proc.h 19764diff -NurpP --minimal linux-3.10.17/kernel/vserver/limit_proc.h linux-3.10.17-vs2.3.6.6/kernel/vserver/limit_proc.h
20156--- linux-3.4.57/kernel/vserver/limit_proc.h 1970-01-01 00:00:00.000000000 +0000 19765--- linux-3.10.17/kernel/vserver/limit_proc.h 1970-01-01 00:00:00.000000000 +0000
20157+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/limit_proc.h 2012-05-21 16:15:05.000000000 +0000 19766+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/limit_proc.h 2013-08-22 20:30:00.000000000 +0000
20158@@ -0,0 +1,57 @@ 19767@@ -0,0 +1,57 @@
20159+#ifndef _VX_LIMIT_PROC_H 19768+#ifndef _VX_LIMIT_PROC_H
20160+#define _VX_LIMIT_PROC_H 19769+#define _VX_LIMIT_PROC_H
@@ -20213,10 +19822,10 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/limit_proc.h linux-3.4.57-vs2.
20213+#endif /* _VX_LIMIT_PROC_H */ 19822+#endif /* _VX_LIMIT_PROC_H */
20214+ 19823+
20215+ 19824+
20216diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3.9/kernel/vserver/network.c 19825diff -NurpP --minimal linux-3.10.17/kernel/vserver/network.c linux-3.10.17-vs2.3.6.6/kernel/vserver/network.c
20217--- linux-3.4.57/kernel/vserver/network.c 1970-01-01 00:00:00.000000000 +0000 19826--- linux-3.10.17/kernel/vserver/network.c 1970-01-01 00:00:00.000000000 +0000
20218+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/network.c 2012-05-21 16:15:05.000000000 +0000 19827+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/network.c 2013-08-22 20:30:00.000000000 +0000
20219@@ -0,0 +1,912 @@ 19828@@ -0,0 +1,1053 @@
20220+/* 19829+/*
20221+ * linux/kernel/vserver/network.c 19830+ * linux/kernel/vserver/network.c
20222+ * 19831+ *
@@ -20237,6 +19846,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
20237+#include <linux/err.h> 19846+#include <linux/err.h>
20238+#include <linux/slab.h> 19847+#include <linux/slab.h>
20239+#include <linux/rcupdate.h> 19848+#include <linux/rcupdate.h>
19849+#include <net/ipv6.h>
20240+ 19850+
20241+#include <linux/vs_network.h> 19851+#include <linux/vs_network.h>
20242+#include <linux/vs_pid.h> 19852+#include <linux/vs_pid.h>
@@ -20334,7 +19944,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
20334+ * allocate an initialized nx_info struct 19944+ * allocate an initialized nx_info struct
20335+ * doesn't make it visible (hash) */ 19945+ * doesn't make it visible (hash) */
20336+ 19946+
20337+static struct nx_info *__alloc_nx_info(nid_t nid) 19947+static struct nx_info *__alloc_nx_info(vnid_t nid)
20338+{ 19948+{
20339+ struct nx_info *new = NULL; 19949+ struct nx_info *new = NULL;
20340+ 19950+
@@ -20350,6 +19960,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
20350+ INIT_HLIST_NODE(&new->nx_hlist); 19960+ INIT_HLIST_NODE(&new->nx_hlist);
20351+ atomic_set(&new->nx_usecnt, 0); 19961+ atomic_set(&new->nx_usecnt, 0);
20352+ atomic_set(&new->nx_tasks, 0); 19962+ atomic_set(&new->nx_tasks, 0);
19963+ spin_lock_init(&new->addr_lock);
20353+ new->nx_state = 0; 19964+ new->nx_state = 0;
20354+ 19965+
20355+ new->nx_flags = NXF_INIT_SET; 19966+ new->nx_flags = NXF_INIT_SET;
@@ -20381,6 +19992,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
20381+ BUG_ON(atomic_read(&nxi->nx_tasks)); 19992+ BUG_ON(atomic_read(&nxi->nx_tasks));
20382+ 19993+
20383+ __dealloc_nx_addr_v4_all(nxi->v4.next); 19994+ __dealloc_nx_addr_v4_all(nxi->v4.next);
19995+#ifdef CONFIG_IPV6
19996+ __dealloc_nx_addr_v6_all(nxi->v6.next);
19997+#endif
20384+ 19998+
20385+ nxi->nx_state |= NXS_RELEASED; 19999+ nxi->nx_state |= NXS_RELEASED;
20386+ kfree(nxi); 20000+ kfree(nxi);
@@ -20431,7 +20045,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
20431+static DEFINE_SPINLOCK(nx_info_hash_lock); 20045+static DEFINE_SPINLOCK(nx_info_hash_lock);
20432+ 20046+
20433+ 20047+
20434+static inline unsigned int __hashval(nid_t nid) 20048+static inline unsigned int __hashval(vnid_t nid)
20435+{ 20049+{
20436+ return (nid % NX_HASH_SIZE); 20050+ return (nid % NX_HASH_SIZE);
20437+} 20051+}
@@ -20488,7 +20102,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
20488+ * requires the hash_lock to be held 20102+ * requires the hash_lock to be held
20489+ * doesn't increment the nx_refcnt */ 20103+ * doesn't increment the nx_refcnt */
20490+ 20104+
20491+static inline struct nx_info *__lookup_nx_info(nid_t nid) 20105+static inline struct nx_info *__lookup_nx_info(vnid_t nid)
20492+{ 20106+{
20493+ struct hlist_head *head = &nx_info_hash[__hashval(nid)]; 20107+ struct hlist_head *head = &nx_info_hash[__hashval(nid)];
20494+ struct hlist_node *pos; 20108+ struct hlist_node *pos;
@@ -20588,7 +20202,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
20588+ 20202+
20589+ * verify that nid is still hashed */ 20203+ * verify that nid is still hashed */
20590+ 20204+
20591+int nid_is_hashed(nid_t nid) 20205+int nid_is_hashed(vnid_t nid)
20592+{ 20206+{
20593+ int hashed; 20207+ int hashed;
20594+ 20208+
@@ -20732,7 +20346,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
20732+ 20346+
20733+int vc_task_nid(uint32_t id) 20347+int vc_task_nid(uint32_t id)
20734+{ 20348+{
20735+ nid_t nid; 20349+ vnid_t nid;
20736+ 20350+
20737+ if (id) { 20351+ if (id) {
20738+ struct task_struct *tsk; 20352+ struct task_struct *tsk;
@@ -20807,52 +20421,108 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
20807+} 20421+}
20808+ 20422+
20809+ 20423+
20424+static inline
20425+struct nx_addr_v4 *__find_v4_addr(struct nx_info *nxi,
20426+ __be32 ip, __be32 ip2, __be32 mask, uint16_t type, uint16_t flags,
20427+ struct nx_addr_v4 **prev)
20428+{
20429+ struct nx_addr_v4 *nxa = &nxi->v4;
20430+
20431+ for (; nxa; nxa = nxa->next) {
20432+ if ((nxa->ip[0].s_addr == ip) &&
20433+ (nxa->ip[1].s_addr == ip2) &&
20434+ (nxa->mask.s_addr == mask) &&
20435+ (nxa->type == type) &&
20436+ (nxa->flags == flags))
20437+ return nxa;
20438+
20439+ /* save previous entry */
20440+ if (prev)
20441+ *prev = nxa;
20442+ }
20443+ return NULL;
20444+}
20810+ 20445+
20811+int do_add_v4_addr(struct nx_info *nxi, __be32 ip, __be32 ip2, __be32 mask, 20446+int do_add_v4_addr(struct nx_info *nxi, __be32 ip, __be32 ip2, __be32 mask,
20812+ uint16_t type, uint16_t flags) 20447+ uint16_t type, uint16_t flags)
20813+{ 20448+{
20814+ struct nx_addr_v4 *nxa = &nxi->v4; 20449+ struct nx_addr_v4 *nxa = NULL;
20450+ struct nx_addr_v4 *new = __alloc_nx_addr_v4();
20451+ unsigned long irqflags;
20452+ int ret = -EEXIST;
20815+ 20453+
20816+ if (NX_IPV4(nxi)) { 20454+ if (IS_ERR(new))
20817+ /* locate last entry */ 20455+ return PTR_ERR(new);
20818+ for (; nxa->next; nxa = nxa->next);
20819+ nxa->next = __alloc_nx_addr_v4();
20820+ nxa = nxa->next;
20821+ 20456+
20822+ if (IS_ERR(nxa)) 20457+ spin_lock_irqsave(&nxi->addr_lock, irqflags);
20823+ return PTR_ERR(nxa); 20458+ if (__find_v4_addr(nxi, ip, ip2, mask, type, flags, &nxa))
20824+ } 20459+ goto out_unlock;
20460+
20461+ if (NX_IPV4(nxi)) {
20462+ nxa->next = new;
20463+ nxa = new;
20464+ new = NULL;
20825+ 20465+
20826+ if (nxi->v4.next)
20827+ /* remove single ip for ip list */ 20466+ /* remove single ip for ip list */
20828+ nxi->nx_flags &= ~NXF_SINGLE_IP; 20467+ nxi->nx_flags &= ~NXF_SINGLE_IP;
20468+ }
20829+ 20469+
20830+ nxa->ip[0].s_addr = ip; 20470+ nxa->ip[0].s_addr = ip;
20831+ nxa->ip[1].s_addr = ip2; 20471+ nxa->ip[1].s_addr = ip2;
20832+ nxa->mask.s_addr = mask; 20472+ nxa->mask.s_addr = mask;
20833+ nxa->type = type; 20473+ nxa->type = type;
20834+ nxa->flags = flags; 20474+ nxa->flags = flags;
20835+ return 0; 20475+ ret = 0;
20476+out_unlock:
20477+ spin_unlock_irqrestore(&nxi->addr_lock, irqflags);
20478+ if (new)
20479+ __dealloc_nx_addr_v4(new);
20480+ return ret;
20836+} 20481+}
20837+ 20482+
20838+int do_remove_v4_addr(struct nx_info *nxi, __be32 ip, __be32 ip2, __be32 mask, 20483+int do_remove_v4_addr(struct nx_info *nxi, __be32 ip, __be32 ip2, __be32 mask,
20839+ uint16_t type, uint16_t flags) 20484+ uint16_t type, uint16_t flags)
20840+{ 20485+{
20841+ struct nx_addr_v4 *nxa = &nxi->v4; 20486+ struct nx_addr_v4 *nxa = NULL;
20487+ struct nx_addr_v4 *old = NULL;
20488+ unsigned long irqflags;
20489+ int ret = 0;
20842+ 20490+
20491+ spin_lock_irqsave(&nxi->addr_lock, irqflags);
20843+ switch (type) { 20492+ switch (type) {
20844+/* case NXA_TYPE_ADDR: 20493+ case NXA_TYPE_ADDR:
20845+ break; */ 20494+ old = __find_v4_addr(nxi, ip, ip2, mask, type, flags, &nxa);
20495+ if (old) {
20496+ if (nxa) {
20497+ nxa->next = old->next;
20498+ old->next = NULL;
20499+ } else {
20500+ if (old->next) {
20501+ nxa = old;
20502+ old = old->next;
20503+ *nxa = *old;
20504+ old->next = NULL;
20505+ } else {
20506+ memset(old, 0, sizeof(*old));
20507+ old = NULL;
20508+ }
20509+ }
20510+ } else
20511+ ret = -ESRCH;
20512+ break;
20846+ 20513+
20847+ case NXA_TYPE_ANY: 20514+ case NXA_TYPE_ANY:
20848+ __dealloc_nx_addr_v4_all(xchg(&nxa->next, NULL)); 20515+ nxa = &nxi->v4;
20516+ old = nxa->next;
20849+ memset(nxa, 0, sizeof(*nxa)); 20517+ memset(nxa, 0, sizeof(*nxa));
20850+ break; 20518+ break;
20851+ 20519+
20852+ default: 20520+ default:
20853+ return -EINVAL; 20521+ ret = -EINVAL;
20854+ } 20522+ }
20855+ return 0; 20523+ spin_unlock_irqrestore(&nxi->addr_lock, irqflags);
20524+ __dealloc_nx_addr_v4_all(old);
20525+ return ret;
20856+} 20526+}
20857+ 20527+
20858+ 20528+
@@ -20906,10 +20576,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
20906+ 20576+
20907+ switch (vc_data.type) { 20577+ switch (vc_data.type) {
20908+ case NXA_TYPE_ANY: 20578+ case NXA_TYPE_ANY:
20909+ __dealloc_nx_addr_v4_all(xchg(&nxi->v4.next, NULL)); 20579+ return do_remove_v4_addr(nxi, 0, 0, 0, vc_data.type, 0);
20910+ memset(&nxi->v4, 0, sizeof(nxi->v4));
20911+ break;
20912+
20913+ default: 20580+ default:
20914+ return -EINVAL; 20581+ return -EINVAL;
20915+ } 20582+ }
@@ -20996,20 +20663,50 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
20996+ 20663+
20997+#ifdef CONFIG_IPV6 20664+#ifdef CONFIG_IPV6
20998+ 20665+
20666+static inline
20667+struct nx_addr_v6 *__find_v6_addr(struct nx_info *nxi,
20668+ struct in6_addr *ip, struct in6_addr *mask,
20669+ uint32_t prefix, uint16_t type, uint16_t flags,
20670+ struct nx_addr_v6 **prev)
20671+{
20672+ struct nx_addr_v6 *nxa = &nxi->v6;
20673+
20674+ for (; nxa; nxa = nxa->next) {
20675+ if (ipv6_addr_equal(&nxa->ip, ip) &&
20676+ ipv6_addr_equal(&nxa->mask, mask) &&
20677+ (nxa->prefix == prefix) &&
20678+ (nxa->type == type) &&
20679+ (nxa->flags == flags))
20680+ return nxa;
20681+
20682+ /* save previous entry */
20683+ if (prev)
20684+ *prev = nxa;
20685+ }
20686+ return NULL;
20687+}
20688+
20689+
20999+int do_add_v6_addr(struct nx_info *nxi, 20690+int do_add_v6_addr(struct nx_info *nxi,
21000+ struct in6_addr *ip, struct in6_addr *mask, 20691+ struct in6_addr *ip, struct in6_addr *mask,
21001+ uint32_t prefix, uint16_t type, uint16_t flags) 20692+ uint32_t prefix, uint16_t type, uint16_t flags)
21002+{ 20693+{
21003+ struct nx_addr_v6 *nxa = &nxi->v6; 20694+ struct nx_addr_v6 *nxa = NULL;
20695+ struct nx_addr_v6 *new = __alloc_nx_addr_v6();
20696+ unsigned long irqflags;
20697+ int ret = -EEXIST;
21004+ 20698+
21005+ if (NX_IPV6(nxi)) { 20699+ if (IS_ERR(new))
21006+ /* locate last entry */ 20700+ return PTR_ERR(new);
21007+ for (; nxa->next; nxa = nxa->next);
21008+ nxa->next = __alloc_nx_addr_v6();
21009+ nxa = nxa->next;
21010+ 20701+
21011+ if (IS_ERR(nxa)) 20702+ spin_lock_irqsave(&nxi->addr_lock, irqflags);
21012+ return PTR_ERR(nxa); 20703+ if (__find_v6_addr(nxi, ip, mask, prefix, type, flags, &nxa))
20704+ goto out_unlock;
20705+
20706+ if (NX_IPV6(nxi)) {
20707+ nxa->next = new;
20708+ nxa = new;
20709+ new = NULL;
21013+ } 20710+ }
21014+ 20711+
21015+ nxa->ip = *ip; 20712+ nxa->ip = *ip;
@@ -21017,9 +20714,59 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
21017+ nxa->prefix = prefix; 20714+ nxa->prefix = prefix;
21018+ nxa->type = type; 20715+ nxa->type = type;
21019+ nxa->flags = flags; 20716+ nxa->flags = flags;
21020+ return 0; 20717+ ret = 0;
20718+out_unlock:
20719+ spin_unlock_irqrestore(&nxi->addr_lock, irqflags);
20720+ if (new)
20721+ __dealloc_nx_addr_v6(new);
20722+ return ret;
21021+} 20723+}
21022+ 20724+
20725+int do_remove_v6_addr(struct nx_info *nxi,
20726+ struct in6_addr *ip, struct in6_addr *mask,
20727+ uint32_t prefix, uint16_t type, uint16_t flags)
20728+{
20729+ struct nx_addr_v6 *nxa = NULL;
20730+ struct nx_addr_v6 *old = NULL;
20731+ unsigned long irqflags;
20732+ int ret = 0;
20733+
20734+ spin_lock_irqsave(&nxi->addr_lock, irqflags);
20735+ switch (type) {
20736+ case NXA_TYPE_ADDR:
20737+ old = __find_v6_addr(nxi, ip, mask, prefix, type, flags, &nxa);
20738+ if (old) {
20739+ if (nxa) {
20740+ nxa->next = old->next;
20741+ old->next = NULL;
20742+ } else {
20743+ if (old->next) {
20744+ nxa = old;
20745+ old = old->next;
20746+ *nxa = *old;
20747+ old->next = NULL;
20748+ } else {
20749+ memset(old, 0, sizeof(*old));
20750+ old = NULL;
20751+ }
20752+ }
20753+ } else
20754+ ret = -ESRCH;
20755+ break;
20756+
20757+ case NXA_TYPE_ANY:
20758+ nxa = &nxi->v6;
20759+ old = nxa->next;
20760+ memset(nxa, 0, sizeof(*nxa));
20761+ break;
20762+
20763+ default:
20764+ ret = -EINVAL;
20765+ }
20766+ spin_unlock_irqrestore(&nxi->addr_lock, irqflags);
20767+ __dealloc_nx_addr_v6_all(old);
20768+ return ret;
20769+}
21023+ 20770+
21024+int vc_net_add_ipv6(struct nx_info *nxi, void __user *data) 20771+int vc_net_add_ipv6(struct nx_info *nxi, void __user *data)
21025+{ 20772+{
@@ -21049,11 +20796,14 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
21049+ return -EFAULT; 20796+ return -EFAULT;
21050+ 20797+
21051+ switch (vc_data.type) { 20798+ switch (vc_data.type) {
20799+ case NXA_TYPE_ADDR:
20800+ memset(&vc_data.mask, ~0, sizeof(vc_data.mask));
20801+ /* fallthrough */
20802+ case NXA_TYPE_MASK:
20803+ return do_remove_v6_addr(nxi, &vc_data.ip, &vc_data.mask,
20804+ vc_data.prefix, vc_data.type, vc_data.flags);
21052+ case NXA_TYPE_ANY: 20805+ case NXA_TYPE_ANY:
21053+ __dealloc_nx_addr_v6_all(xchg(&nxi->v6.next, NULL)); 20806+ return do_remove_v6_addr(nxi, NULL, NULL, 0, vc_data.type, 0);
21054+ memset(&nxi->v6, 0, sizeof(nxi->v6));
21055+ break;
21056+
21057+ default: 20807+ default:
21058+ return -EINVAL; 20808+ return -EINVAL;
21059+ } 20809+ }
@@ -21129,10 +20879,10 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/network.c linux-3.4.57-vs2.3.3
21129+EXPORT_SYMBOL_GPL(free_nx_info); 20879+EXPORT_SYMBOL_GPL(free_nx_info);
21130+EXPORT_SYMBOL_GPL(unhash_nx_info); 20880+EXPORT_SYMBOL_GPL(unhash_nx_info);
21131+ 20881+
21132diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/kernel/vserver/proc.c 20882diff -NurpP --minimal linux-3.10.17/kernel/vserver/proc.c linux-3.10.17-vs2.3.6.6/kernel/vserver/proc.c
21133--- linux-3.4.57/kernel/vserver/proc.c 1970-01-01 00:00:00.000000000 +0000 20883--- linux-3.10.17/kernel/vserver/proc.c 1970-01-01 00:00:00.000000000 +0000
21134+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/proc.c 2012-05-21 16:15:05.000000000 +0000 20884+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/proc.c 2013-08-22 23:31:37.000000000 +0000
21135@@ -0,0 +1,1103 @@ 20885@@ -0,0 +1,1113 @@
21136+/* 20886+/*
21137+ * linux/kernel/vserver/proc.c 20887+ * linux/kernel/vserver/proc.c
21138+ * 20888+ *
@@ -21155,6 +20905,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21155+#include <linux/proc_fs.h> 20905+#include <linux/proc_fs.h>
21156+#include <linux/fs_struct.h> 20906+#include <linux/fs_struct.h>
21157+#include <linux/mount.h> 20907+#include <linux/mount.h>
20908+#include <linux/namei.h>
21158+#include <asm/unistd.h> 20909+#include <asm/unistd.h>
21159+ 20910+
21160+#include <linux/vs_context.h> 20911+#include <linux/vs_context.h>
@@ -21174,6 +20925,8 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21174+#include "sched_proc.h" 20925+#include "sched_proc.h"
21175+#include "vci_config.h" 20926+#include "vci_config.h"
21176+ 20927+
20928+#include <../../fs/proc/internal.h>
20929+
21177+ 20930+
21178+static inline char *print_cap_t(char *buffer, kernel_cap_t *c) 20931+static inline char *print_cap_t(char *buffer, kernel_cap_t *c)
21179+{ 20932+{
@@ -21422,9 +21175,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21422+ 21175+
21423+ inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; 21176+ inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
21424+ 21177+
21425+ inode->i_uid = 0; 21178+ i_uid_write(inode, 0);
21426+ inode->i_gid = 0; 21179+ i_gid_write(inode, 0);
21427+ inode->i_tag = 0; 21180+ i_tag_write(inode, 0);
21428+out: 21181+out:
21429+ return inode; 21182+ return inode;
21430+} 21183+}
@@ -21449,7 +21202,8 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21449+ 21202+
21450+/* Lookups */ 21203+/* Lookups */
21451+ 21204+
21452+typedef struct dentry *instantiate_t(struct inode *, struct dentry *, int, void *); 21205+typedef struct dentry *vx_instantiate_t(struct inode *, struct dentry *, int, void *);
21206+
21453+ 21207+
21454+/* 21208+/*
21455+ * Fill a directory entry. 21209+ * Fill a directory entry.
@@ -21463,8 +21217,8 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21463+ * reported by readdir in sync with the inode numbers reported 21217+ * reported by readdir in sync with the inode numbers reported
21464+ * by stat. 21218+ * by stat.
21465+ */ 21219+ */
21466+static int proc_fill_cache(struct file *filp, void *dirent, filldir_t filldir, 21220+static int vx_proc_fill_cache(struct file *filp, void *dirent, filldir_t filldir,
21467+ char *name, int len, instantiate_t instantiate, int id, void *ptr) 21221+ char *name, int len, vx_instantiate_t instantiate, int id, void *ptr)
21468+{ 21222+{
21469+ struct dentry *child, *dir = filp->f_dentry; 21223+ struct dentry *child, *dir = filp->f_dentry;
21470+ struct inode *inode; 21224+ struct inode *inode;
@@ -21514,10 +21268,13 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21514+ return lookup_vx_info(PROC_I(inode)->fd); 21268+ return lookup_vx_info(PROC_I(inode)->fd);
21515+} 21269+}
21516+ 21270+
21517+static int proc_xid_revalidate(struct dentry *dentry, struct nameidata *nd) 21271+static int proc_xid_revalidate(struct dentry *dentry, unsigned int flags)
21518+{ 21272+{
21519+ struct inode *inode = dentry->d_inode; 21273+ struct inode *inode = dentry->d_inode;
21520+ xid_t xid = PROC_I(inode)->fd; 21274+ vxid_t xid = PROC_I(inode)->fd;
21275+
21276+ if (flags & LOOKUP_RCU) /* FIXME: can be dropped? */
21277+ return -ECHILD;
21521+ 21278+
21522+ if (!xid || xid_is_hashed(xid)) 21279+ if (!xid || xid_is_hashed(xid))
21523+ return 1; 21280+ return 1;
@@ -21528,10 +21285,13 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21528+ 21285+
21529+/* get and revalidate nx_info/nid */ 21286+/* get and revalidate nx_info/nid */
21530+ 21287+
21531+static int proc_nid_revalidate(struct dentry *dentry, struct nameidata *nd) 21288+static int proc_nid_revalidate(struct dentry *dentry, unsigned int flags)
21532+{ 21289+{
21533+ struct inode *inode = dentry->d_inode; 21290+ struct inode *inode = dentry->d_inode;
21534+ nid_t nid = PROC_I(inode)->fd; 21291+ vnid_t nid = PROC_I(inode)->fd;
21292+
21293+ if (flags & LOOKUP_RCU) /* FIXME: can be dropped? */
21294+ return -ECHILD;
21535+ 21295+
21536+ if (!nid || nid_is_hashed(nid)) 21296+ if (!nid || nid_is_hashed(nid))
21537+ return 1; 21297+ return 1;
@@ -21575,7 +21335,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21575+{ 21335+{
21576+ struct inode *inode = file->f_dentry->d_inode; 21336+ struct inode *inode = file->f_dentry->d_inode;
21577+ struct vx_info *vxi = NULL; 21337+ struct vx_info *vxi = NULL;
21578+ xid_t xid = PROC_I(inode)->fd; 21338+ vxid_t xid = PROC_I(inode)->fd;
21579+ unsigned long page; 21339+ unsigned long page;
21580+ ssize_t length = 0; 21340+ ssize_t length = 0;
21581+ 21341+
@@ -21611,7 +21371,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21611+{ 21371+{
21612+ struct inode *inode = file->f_dentry->d_inode; 21372+ struct inode *inode = file->f_dentry->d_inode;
21613+ struct nx_info *nxi = NULL; 21373+ struct nx_info *nxi = NULL;
21614+ nid_t nid = PROC_I(inode)->fd; 21374+ vnid_t nid = PROC_I(inode)->fd;
21615+ unsigned long page; 21375+ unsigned long page;
21616+ ssize_t length = 0; 21376+ ssize_t length = 0;
21617+ 21377+
@@ -21713,7 +21473,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21713+} 21473+}
21714+ 21474+
21715+static struct dentry *proc_xid_lookup(struct inode *dir, 21475+static struct dentry *proc_xid_lookup(struct inode *dir,
21716+ struct dentry *dentry, struct nameidata *nd) 21476+ struct dentry *dentry, unsigned int flags)
21717+{ 21477+{
21718+ struct vs_entry *p = vx_base_stuff; 21478+ struct vs_entry *p = vx_base_stuff;
21719+ struct dentry *error = ERR_PTR(-ENOENT); 21479+ struct dentry *error = ERR_PTR(-ENOENT);
@@ -21761,7 +21521,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21761+ if (index >= size) 21521+ if (index >= size)
21762+ goto out; 21522+ goto out;
21763+ for (p += index; p->name; p++) { 21523+ for (p += index; p->name; p++) {
21764+ if (proc_fill_cache(filp, dirent, filldir, p->name, p->len, 21524+ if (vx_proc_fill_cache(filp, dirent, filldir, p->name, p->len,
21765+ vs_proc_instantiate, PROC_I(inode)->fd, p)) 21525+ vs_proc_instantiate, PROC_I(inode)->fd, p))
21766+ goto out; 21526+ goto out;
21767+ pos++; 21527+ pos++;
@@ -21797,7 +21557,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21797+} 21557+}
21798+ 21558+
21799+static struct dentry *proc_nid_lookup(struct inode *dir, 21559+static struct dentry *proc_nid_lookup(struct inode *dir,
21800+ struct dentry *dentry, struct nameidata *nd) 21560+ struct dentry *dentry, unsigned int flags)
21801+{ 21561+{
21802+ struct vs_entry *p = nx_base_stuff; 21562+ struct vs_entry *p = nx_base_stuff;
21803+ struct dentry *error = ERR_PTR(-ENOENT); 21563+ struct dentry *error = ERR_PTR(-ENOENT);
@@ -21845,7 +21605,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21845+ if (index >= size) 21605+ if (index >= size)
21846+ goto out; 21606+ goto out;
21847+ for (p += index; p->name; p++) { 21607+ for (p += index; p->name; p++) {
21848+ if (proc_fill_cache(filp, dirent, filldir, p->name, p->len, 21608+ if (vx_proc_fill_cache(filp, dirent, filldir, p->name, p->len,
21849+ vs_proc_instantiate, PROC_I(inode)->fd, p)) 21609+ vs_proc_instantiate, PROC_I(inode)->fd, p))
21850+ goto out; 21610+ goto out;
21851+ pos++; 21611+ pos++;
@@ -21899,7 +21659,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21899+ 21659+
21900+ 21660+
21901+static struct dentry *proc_virtual_lookup(struct inode *dir, 21661+static struct dentry *proc_virtual_lookup(struct inode *dir,
21902+ struct dentry *dentry, struct nameidata *nd) 21662+ struct dentry *dentry, unsigned int flags)
21903+{ 21663+{
21904+ struct vs_entry *p = vx_virtual_stuff; 21664+ struct vs_entry *p = vx_virtual_stuff;
21905+ struct dentry *error = ERR_PTR(-ENOENT); 21665+ struct dentry *error = ERR_PTR(-ENOENT);
@@ -21941,7 +21701,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
21941+ 21701+
21942+ 21702+
21943+static struct dentry *proc_virtnet_lookup(struct inode *dir, 21703+static struct dentry *proc_virtnet_lookup(struct inode *dir,
21944+ struct dentry *dentry, struct nameidata *nd) 21704+ struct dentry *dentry, unsigned int flags)
21945+{ 21705+{
21946+ struct vs_entry *p = nx_virtnet_stuff; 21706+ struct vs_entry *p = nx_virtnet_stuff;
21947+ struct dentry *error = ERR_PTR(-ENOENT); 21707+ struct dentry *error = ERR_PTR(-ENOENT);
@@ -22001,7 +21761,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
22001+ if (index >= size) 21761+ if (index >= size)
22002+ goto entries; 21762+ goto entries;
22003+ for (p += index; p->name; p++) { 21763+ for (p += index; p->name; p++) {
22004+ if (proc_fill_cache(filp, dirent, filldir, p->name, p->len, 21764+ if (vx_proc_fill_cache(filp, dirent, filldir, p->name, p->len,
22005+ vs_proc_instantiate, 0, p)) 21765+ vs_proc_instantiate, 0, p))
22006+ goto out; 21766+ goto out;
22007+ pos++; 21767+ pos++;
@@ -22019,7 +21779,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
22019+ buf[--j] = '0' + (n % 10); 21779+ buf[--j] = '0' + (n % 10);
22020+ while (n /= 10); 21780+ while (n /= 10);
22021+ 21781+
22022+ if (proc_fill_cache(filp, dirent, filldir, 21782+ if (vx_proc_fill_cache(filp, dirent, filldir,
22023+ buf + j, PROC_NUMBUF - j, 21783+ buf + j, PROC_NUMBUF - j,
22024+ vs_proc_instantiate, xid, p)) 21784+ vs_proc_instantiate, xid, p))
22025+ goto out; 21785+ goto out;
@@ -22087,7 +21847,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
22087+ if (index >= size) 21847+ if (index >= size)
22088+ goto entries; 21848+ goto entries;
22089+ for (p += index; p->name; p++) { 21849+ for (p += index; p->name; p++) {
22090+ if (proc_fill_cache(filp, dirent, filldir, p->name, p->len, 21850+ if (vx_proc_fill_cache(filp, dirent, filldir, p->name, p->len,
22091+ vs_proc_instantiate, 0, p)) 21851+ vs_proc_instantiate, 0, p))
22092+ goto out; 21852+ goto out;
22093+ pos++; 21853+ pos++;
@@ -22105,7 +21865,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
22105+ buf[--j] = '0' + (n % 10); 21865+ buf[--j] = '0' + (n % 10);
22106+ while (n /= 10); 21866+ while (n /= 10);
22107+ 21867+
22108+ if (proc_fill_cache(filp, dirent, filldir, 21868+ if (vx_proc_fill_cache(filp, dirent, filldir,
22109+ buf + j, PROC_NUMBUF - j, 21869+ buf + j, PROC_NUMBUF - j,
22110+ vs_proc_instantiate, nid, p)) 21870+ vs_proc_instantiate, nid, p))
22111+ goto out; 21871+ goto out;
@@ -22236,9 +21996,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/proc.c linux-3.4.57-vs2.3.3.9/
22236+ return buffer - orig; 21996+ return buffer - orig;
22237+} 21997+}
22238+ 21998+
22239diff -NurpP --minimal linux-3.4.57/kernel/vserver/sched.c linux-3.4.57-vs2.3.3.9/kernel/vserver/sched.c 21999diff -NurpP --minimal linux-3.10.17/kernel/vserver/sched.c linux-3.10.17-vs2.3.6.6/kernel/vserver/sched.c
22240--- linux-3.4.57/kernel/vserver/sched.c 1970-01-01 00:00:00.000000000 +0000 22000--- linux-3.10.17/kernel/vserver/sched.c 1970-01-01 00:00:00.000000000 +0000
22241+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/sched.c 2012-05-21 16:25:11.000000000 +0000 22001+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/sched.c 2013-08-22 20:30:00.000000000 +0000
22242@@ -0,0 +1,83 @@ 22002@@ -0,0 +1,83 @@
22243+/* 22003+/*
22244+ * linux/kernel/vserver/sched.c 22004+ * linux/kernel/vserver/sched.c
@@ -22323,9 +22083,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/sched.c linux-3.4.57-vs2.3.3.9
22323+ return 0; 22083+ return 0;
22324+} 22084+}
22325+ 22085+
22326diff -NurpP --minimal linux-3.4.57/kernel/vserver/sched_init.h linux-3.4.57-vs2.3.3.9/kernel/vserver/sched_init.h 22086diff -NurpP --minimal linux-3.10.17/kernel/vserver/sched_init.h linux-3.10.17-vs2.3.6.6/kernel/vserver/sched_init.h
22327--- linux-3.4.57/kernel/vserver/sched_init.h 1970-01-01 00:00:00.000000000 +0000 22087--- linux-3.10.17/kernel/vserver/sched_init.h 1970-01-01 00:00:00.000000000 +0000
22328+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/sched_init.h 2012-05-21 16:15:05.000000000 +0000 22088+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/sched_init.h 2013-08-22 20:30:00.000000000 +0000
22329@@ -0,0 +1,27 @@ 22089@@ -0,0 +1,27 @@
22330+ 22090+
22331+static inline void vx_info_init_sched(struct _vx_sched *sched) 22091+static inline void vx_info_init_sched(struct _vx_sched *sched)
@@ -22354,9 +22114,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/sched_init.h linux-3.4.57-vs2.
22354+{ 22114+{
22355+ return; 22115+ return;
22356+} 22116+}
22357diff -NurpP --minimal linux-3.4.57/kernel/vserver/sched_proc.h linux-3.4.57-vs2.3.3.9/kernel/vserver/sched_proc.h 22117diff -NurpP --minimal linux-3.10.17/kernel/vserver/sched_proc.h linux-3.10.17-vs2.3.6.6/kernel/vserver/sched_proc.h
22358--- linux-3.4.57/kernel/vserver/sched_proc.h 1970-01-01 00:00:00.000000000 +0000 22118--- linux-3.10.17/kernel/vserver/sched_proc.h 1970-01-01 00:00:00.000000000 +0000
22359+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/sched_proc.h 2012-05-21 16:15:05.000000000 +0000 22119+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/sched_proc.h 2013-08-22 20:30:00.000000000 +0000
22360@@ -0,0 +1,32 @@ 22120@@ -0,0 +1,32 @@
22361+#ifndef _VX_SCHED_PROC_H 22121+#ifndef _VX_SCHED_PROC_H
22362+#define _VX_SCHED_PROC_H 22122+#define _VX_SCHED_PROC_H
@@ -22390,9 +22150,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/sched_proc.h linux-3.4.57-vs2.
22390+} 22150+}
22391+ 22151+
22392+#endif /* _VX_SCHED_PROC_H */ 22152+#endif /* _VX_SCHED_PROC_H */
22393diff -NurpP --minimal linux-3.4.57/kernel/vserver/signal.c linux-3.4.57-vs2.3.3.9/kernel/vserver/signal.c 22153diff -NurpP --minimal linux-3.10.17/kernel/vserver/signal.c linux-3.10.17-vs2.3.6.6/kernel/vserver/signal.c
22394--- linux-3.4.57/kernel/vserver/signal.c 1970-01-01 00:00:00.000000000 +0000 22154--- linux-3.10.17/kernel/vserver/signal.c 1970-01-01 00:00:00.000000000 +0000
22395+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/signal.c 2012-05-21 16:15:05.000000000 +0000 22155+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/signal.c 2013-08-22 20:30:00.000000000 +0000
22396@@ -0,0 +1,134 @@ 22156@@ -0,0 +1,134 @@
22397+/* 22157+/*
22398+ * linux/kernel/vserver/signal.c 22158+ * linux/kernel/vserver/signal.c
@@ -22528,9 +22288,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/signal.c linux-3.4.57-vs2.3.3.
22528+ return ret; 22288+ return ret;
22529+} 22289+}
22530+ 22290+
22531diff -NurpP --minimal linux-3.4.57/kernel/vserver/space.c linux-3.4.57-vs2.3.3.9/kernel/vserver/space.c 22291diff -NurpP --minimal linux-3.10.17/kernel/vserver/space.c linux-3.10.17-vs2.3.6.6/kernel/vserver/space.c
22532--- linux-3.4.57/kernel/vserver/space.c 1970-01-01 00:00:00.000000000 +0000 22292--- linux-3.10.17/kernel/vserver/space.c 1970-01-01 00:00:00.000000000 +0000
22533+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/space.c 2013-02-12 00:16:04.000000000 +0000 22293+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/space.c 2013-08-22 20:30:00.000000000 +0000
22534@@ -0,0 +1,436 @@ 22294@@ -0,0 +1,436 @@
22535+/* 22295+/*
22536+ * linux/kernel/vserver/space.c 22296+ * linux/kernel/vserver/space.c
@@ -22968,9 +22728,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/space.c linux-3.4.57-vs2.3.3.9
22968+ return 0; 22728+ return 0;
22969+} 22729+}
22970+ 22730+
22971diff -NurpP --minimal linux-3.4.57/kernel/vserver/switch.c linux-3.4.57-vs2.3.3.9/kernel/vserver/switch.c 22731diff -NurpP --minimal linux-3.10.17/kernel/vserver/switch.c linux-3.10.17-vs2.3.6.6/kernel/vserver/switch.c
22972--- linux-3.4.57/kernel/vserver/switch.c 1970-01-01 00:00:00.000000000 +0000 22732--- linux-3.10.17/kernel/vserver/switch.c 1970-01-01 00:00:00.000000000 +0000
22973+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/switch.c 2012-05-21 16:15:05.000000000 +0000 22733+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/switch.c 2013-08-22 20:30:00.000000000 +0000
22974@@ -0,0 +1,556 @@ 22734@@ -0,0 +1,556 @@
22975+/* 22735+/*
22976+ * linux/kernel/vserver/switch.c 22736+ * linux/kernel/vserver/switch.c
@@ -23528,9 +23288,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/switch.c linux-3.4.57-vs2.3.3.
23528+} 23288+}
23529+ 23289+
23530+#endif /* CONFIG_COMPAT */ 23290+#endif /* CONFIG_COMPAT */
23531diff -NurpP --minimal linux-3.4.57/kernel/vserver/sysctl.c linux-3.4.57-vs2.3.3.9/kernel/vserver/sysctl.c 23291diff -NurpP --minimal linux-3.10.17/kernel/vserver/sysctl.c linux-3.10.17-vs2.3.6.6/kernel/vserver/sysctl.c
23532--- linux-3.4.57/kernel/vserver/sysctl.c 1970-01-01 00:00:00.000000000 +0000 23292--- linux-3.10.17/kernel/vserver/sysctl.c 1970-01-01 00:00:00.000000000 +0000
23533+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/sysctl.c 2012-05-21 16:15:05.000000000 +0000 23293+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/sysctl.c 2013-08-22 20:30:00.000000000 +0000
23534@@ -0,0 +1,247 @@ 23294@@ -0,0 +1,247 @@
23535+/* 23295+/*
23536+ * kernel/vserver/sysctl.c 23296+ * kernel/vserver/sysctl.c
@@ -23779,9 +23539,9 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/sysctl.c linux-3.4.57-vs2.3.3.
23779+EXPORT_SYMBOL_GPL(vs_debug_perm); 23539+EXPORT_SYMBOL_GPL(vs_debug_perm);
23780+EXPORT_SYMBOL_GPL(vs_debug_misc); 23540+EXPORT_SYMBOL_GPL(vs_debug_misc);
23781+ 23541+
23782diff -NurpP --minimal linux-3.4.57/kernel/vserver/tag.c linux-3.4.57-vs2.3.3.9/kernel/vserver/tag.c 23542diff -NurpP --minimal linux-3.10.17/kernel/vserver/tag.c linux-3.10.17-vs2.3.6.6/kernel/vserver/tag.c
23783--- linux-3.4.57/kernel/vserver/tag.c 1970-01-01 00:00:00.000000000 +0000 23543--- linux-3.10.17/kernel/vserver/tag.c 1970-01-01 00:00:00.000000000 +0000
23784+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/tag.c 2012-05-21 16:15:05.000000000 +0000 23544+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/tag.c 2013-08-22 20:30:00.000000000 +0000
23785@@ -0,0 +1,63 @@ 23545@@ -0,0 +1,63 @@
23786+/* 23546+/*
23787+ * linux/kernel/vserver/tag.c 23547+ * linux/kernel/vserver/tag.c
@@ -23802,7 +23562,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/tag.c linux-3.4.57-vs2.3.3.9/k
23802+#include <linux/vserver/tag_cmd.h> 23562+#include <linux/vserver/tag_cmd.h>
23803+ 23563+
23804+ 23564+
23805+int dx_migrate_task(struct task_struct *p, tag_t tag) 23565+int dx_migrate_task(struct task_struct *p, vtag_t tag)
23806+{ 23566+{
23807+ if (!p) 23567+ if (!p)
23808+ BUG(); 23568+ BUG();
@@ -23826,7 +23586,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/tag.c linux-3.4.57-vs2.3.3.9/k
23826+ 23586+
23827+int vc_task_tag(uint32_t id) 23587+int vc_task_tag(uint32_t id)
23828+{ 23588+{
23829+ tag_t tag; 23589+ vtag_t tag;
23830+ 23590+
23831+ if (id) { 23591+ if (id) {
23832+ struct task_struct *tsk; 23592+ struct task_struct *tsk;
@@ -23846,10 +23606,10 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/tag.c linux-3.4.57-vs2.3.3.9/k
23846+} 23606+}
23847+ 23607+
23848+ 23608+
23849diff -NurpP --minimal linux-3.4.57/kernel/vserver/vci_config.h linux-3.4.57-vs2.3.3.9/kernel/vserver/vci_config.h 23609diff -NurpP --minimal linux-3.10.17/kernel/vserver/vci_config.h linux-3.10.17-vs2.3.6.6/kernel/vserver/vci_config.h
23850--- linux-3.4.57/kernel/vserver/vci_config.h 1970-01-01 00:00:00.000000000 +0000 23610--- linux-3.10.17/kernel/vserver/vci_config.h 1970-01-01 00:00:00.000000000 +0000
23851+++ linux-3.4.57-vs2.3.3.9/kernel/vserver/vci_config.h 2012-05-21 16:15:05.000000000 +0000 23611+++ linux-3.10.17-vs2.3.6.6/kernel/vserver/vci_config.h 2013-08-22 20:30:00.000000000 +0000
23852@@ -0,0 +1,76 @@ 23612@@ -0,0 +1,80 @@
23853+ 23613+
23854+/* interface version */ 23614+/* interface version */
23855+ 23615+
@@ -23869,6 +23629,7 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/vci_config.h linux-3.4.57-vs2.
23869+ VCI_KCBIT_SPACES = 10, 23629+ VCI_KCBIT_SPACES = 10,
23870+ VCI_KCBIT_NETV2 = 11, 23630+ VCI_KCBIT_NETV2 = 11,
23871+ VCI_KCBIT_MEMCG = 12, 23631+ VCI_KCBIT_MEMCG = 12,
23632+ VCI_KCBIT_MEMCG_SWAP = 13,
23872+ 23633+
23873+ VCI_KCBIT_DEBUG = 16, 23634+ VCI_KCBIT_DEBUG = 16,
23874+ VCI_KCBIT_HISTORY = 20, 23635+ VCI_KCBIT_HISTORY = 20,
@@ -23894,9 +23655,12 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/vci_config.h linux-3.4.57-vs2.
23894+#endif 23655+#endif
23895+ (1 << VCI_KCBIT_SPACES) | 23656+ (1 << VCI_KCBIT_SPACES) |
23896+ (1 << VCI_KCBIT_NETV2) | 23657+ (1 << VCI_KCBIT_NETV2) |
23897+#ifdef CONFIG_CGROUP_MEM_RES_CTLR 23658+#ifdef CONFIG_MEMCG
23898+ (1 << VCI_KCBIT_MEMCG) | 23659+ (1 << VCI_KCBIT_MEMCG) |
23899+#endif 23660+#endif
23661+#ifdef CONFIG_MEMCG_SWAP
23662+ (1 << VCI_KCBIT_MEMCG_SWAP) |
23663+#endif
23900+ 23664+
23901+ /* debug options */ 23665+ /* debug options */
23902+#ifdef CONFIG_VSERVER_DEBUG 23666+#ifdef CONFIG_VSERVER_DEBUG
@@ -23926,11 +23690,11 @@ diff -NurpP --minimal linux-3.4.57/kernel/vserver/vci_config.h linux-3.4.57-vs2.
23926+ 0; 23690+ 0;
23927+} 23691+}
23928+ 23692+
23929diff -NurpP --minimal linux-3.4.57/mm/memcontrol.c linux-3.4.57-vs2.3.3.9/mm/memcontrol.c 23693diff -NurpP --minimal linux-3.10.17/mm/memcontrol.c linux-3.10.17-vs2.3.6.6/mm/memcontrol.c
23930--- linux-3.4.57/mm/memcontrol.c 2013-08-13 14:13:42.000000000 +0000 23694--- linux-3.10.17/mm/memcontrol.c 2013-10-25 15:17:45.000000000 +0000
23931+++ linux-3.4.57-vs2.3.3.9/mm/memcontrol.c 2012-12-08 00:53:53.000000000 +0000 23695+++ linux-3.10.17-vs2.3.6.6/mm/memcontrol.c 2013-10-09 17:37:22.000000000 +0000
23932@@ -846,6 +846,31 @@ struct mem_cgroup *mem_cgroup_from_task( 23696@@ -1082,6 +1082,31 @@ struct mem_cgroup *mem_cgroup_from_task(
23933 struct mem_cgroup, css); 23697 return mem_cgroup_from_css(task_subsys_state(p, mem_cgroup_subsys_id));
23934 } 23698 }
23935 23699
23936+u64 mem_cgroup_res_read_u64(struct mem_cgroup *mem, int member) 23700+u64 mem_cgroup_res_read_u64(struct mem_cgroup *mem, int member)
@@ -23961,9 +23725,9 @@ diff -NurpP --minimal linux-3.4.57/mm/memcontrol.c linux-3.4.57-vs2.3.3.9/mm/mem
23961 struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm) 23725 struct mem_cgroup *try_get_mem_cgroup_from_mm(struct mm_struct *mm)
23962 { 23726 {
23963 struct mem_cgroup *memcg = NULL; 23727 struct mem_cgroup *memcg = NULL;
23964diff -NurpP --minimal linux-3.4.57/mm/oom_kill.c linux-3.4.57-vs2.3.3.9/mm/oom_kill.c 23728diff -NurpP --minimal linux-3.10.17/mm/oom_kill.c linux-3.10.17-vs2.3.6.6/mm/oom_kill.c
23965--- linux-3.4.57/mm/oom_kill.c 2012-05-21 16:07:35.000000000 +0000 23729--- linux-3.10.17/mm/oom_kill.c 2013-05-31 13:45:31.000000000 +0000
23966+++ linux-3.4.57-vs2.3.3.9/mm/oom_kill.c 2012-05-21 16:15:05.000000000 +0000 23730+++ linux-3.10.17-vs2.3.6.6/mm/oom_kill.c 2013-08-22 20:30:00.000000000 +0000
23967@@ -35,6 +35,8 @@ 23731@@ -35,6 +35,8 @@
23968 #include <linux/freezer.h> 23732 #include <linux/freezer.h>
23969 #include <linux/ftrace.h> 23733 #include <linux/ftrace.h>
@@ -23973,7 +23737,7 @@ diff -NurpP --minimal linux-3.4.57/mm/oom_kill.c linux-3.4.57-vs2.3.3.9/mm/oom_k
23973 23737
23974 #define CREATE_TRACE_POINTS 23738 #define CREATE_TRACE_POINTS
23975 #include <trace/events/oom.h> 23739 #include <trace/events/oom.h>
23976@@ -155,11 +157,18 @@ struct task_struct *find_lock_task_mm(st 23740@@ -113,11 +115,18 @@ struct task_struct *find_lock_task_mm(st
23977 static bool oom_unkillable_task(struct task_struct *p, 23741 static bool oom_unkillable_task(struct task_struct *p,
23978 const struct mem_cgroup *memcg, const nodemask_t *nodemask) 23742 const struct mem_cgroup *memcg, const nodemask_t *nodemask)
23979 { 23743 {
@@ -23993,7 +23757,7 @@ diff -NurpP --minimal linux-3.4.57/mm/oom_kill.c linux-3.4.57-vs2.3.3.9/mm/oom_k
23993 /* When mem_cgroup_out_of_memory() and p is not member of the group */ 23757 /* When mem_cgroup_out_of_memory() and p is not member of the group */
23994 if (memcg && !task_in_mem_cgroup(p, memcg)) 23758 if (memcg && !task_in_mem_cgroup(p, memcg))
23995 return true; 23759 return true;
23996@@ -462,8 +471,8 @@ static void oom_kill_process(struct task 23760@@ -426,8 +435,8 @@ void oom_kill_process(struct task_struct
23997 dump_header(p, gfp_mask, order, memcg, nodemask); 23761 dump_header(p, gfp_mask, order, memcg, nodemask);
23998 23762
23999 task_lock(p); 23763 task_lock(p);
@@ -24004,7 +23768,7 @@ diff -NurpP --minimal linux-3.4.57/mm/oom_kill.c linux-3.4.57-vs2.3.3.9/mm/oom_k
24004 task_unlock(p); 23768 task_unlock(p);
24005 23769
24006 /* 23770 /*
24007@@ -496,8 +505,8 @@ static void oom_kill_process(struct task 23771@@ -472,8 +481,8 @@ void oom_kill_process(struct task_struct
24008 23772
24009 /* mm cannot safely be dereferenced after task_unlock(victim) */ 23773 /* mm cannot safely be dereferenced after task_unlock(victim) */
24010 mm = victim->mm; 23774 mm = victim->mm;
@@ -24015,7 +23779,7 @@ diff -NurpP --minimal linux-3.4.57/mm/oom_kill.c linux-3.4.57-vs2.3.3.9/mm/oom_k
24015 K(get_mm_counter(victim->mm, MM_ANONPAGES)), 23779 K(get_mm_counter(victim->mm, MM_ANONPAGES)),
24016 K(get_mm_counter(victim->mm, MM_FILEPAGES))); 23780 K(get_mm_counter(victim->mm, MM_FILEPAGES)));
24017 task_unlock(victim); 23781 task_unlock(victim);
24018@@ -596,6 +605,8 @@ int unregister_oom_notifier(struct notif 23782@@ -543,6 +552,8 @@ int unregister_oom_notifier(struct notif
24019 } 23783 }
24020 EXPORT_SYMBOL_GPL(unregister_oom_notifier); 23784 EXPORT_SYMBOL_GPL(unregister_oom_notifier);
24021 23785
@@ -24024,33 +23788,33 @@ diff -NurpP --minimal linux-3.4.57/mm/oom_kill.c linux-3.4.57-vs2.3.3.9/mm/oom_k
24024 /* 23788 /*
24025 * Try to acquire the OOM killer lock for the zones in zonelist. Returns zero 23789 * Try to acquire the OOM killer lock for the zones in zonelist. Returns zero
24026 * if a parallel OOM killing is already taking place that includes a zone in 23790 * if a parallel OOM killing is already taking place that includes a zone in
24027@@ -747,7 +758,12 @@ void out_of_memory(struct zonelist *zone 23791@@ -655,7 +666,12 @@ void out_of_memory(struct zonelist *zone
23792 /* Found nothing?!?! Either we hang forever, or we panic. */
24028 if (!p) { 23793 if (!p) {
24029 dump_header(NULL, gfp_mask, order, NULL, mpol_mask); 23794 dump_header(NULL, gfp_mask, order, NULL, mpol_mask);
24030 read_unlock(&tasklist_lock);
24031- panic("Out of memory and no killable processes...\n"); 23795- panic("Out of memory and no killable processes...\n");
24032+ 23796+
24033+ /* avoid panic for guest OOM */ 23797+ /* avoid panic for guest OOM */
24034+ if (current->xid) 23798+ if (vx_current_xid())
24035+ vs_oom_action(LINUX_REBOOT_CMD_OOM); 23799+ vs_oom_action(LINUX_REBOOT_CMD_OOM);
24036+ else 23800+ else
24037+ panic("Out of memory and no killable processes...\n"); 23801+ panic("Out of memory and no killable processes...\n");
24038 } 23802 }
24039 if (PTR_ERR(p) != -1UL) { 23803 if (PTR_ERR(p) != -1UL) {
24040 oom_kill_process(p, gfp_mask, order, points, totalpages, NULL, 23804 oom_kill_process(p, gfp_mask, order, points, totalpages, NULL,
24041diff -NurpP --minimal linux-3.4.57/mm/page_alloc.c linux-3.4.57-vs2.3.3.9/mm/page_alloc.c 23805diff -NurpP --minimal linux-3.10.17/mm/page_alloc.c linux-3.10.17-vs2.3.6.6/mm/page_alloc.c
24042--- linux-3.4.57/mm/page_alloc.c 2013-08-13 14:13:42.000000000 +0000 23806--- linux-3.10.17/mm/page_alloc.c 2013-10-25 15:17:45.000000000 +0000
24043+++ linux-3.4.57-vs2.3.3.9/mm/page_alloc.c 2013-08-13 17:07:37.000000000 +0000 23807+++ linux-3.10.17-vs2.3.6.6/mm/page_alloc.c 2013-08-22 20:30:00.000000000 +0000
24044@@ -58,6 +58,8 @@ 23808@@ -60,6 +60,8 @@
24045 #include <linux/memcontrol.h>
24046 #include <linux/prefetch.h>
24047 #include <linux/page-debug-flags.h> 23809 #include <linux/page-debug-flags.h>
23810 #include <linux/hugetlb.h>
23811 #include <linux/sched/rt.h>
24048+#include <linux/vs_base.h> 23812+#include <linux/vs_base.h>
24049+#include <linux/vs_limit.h> 23813+#include <linux/vs_limit.h>
24050 23814
24051 #include <asm/tlbflush.h> 23815 #include <asm/tlbflush.h>
24052 #include <asm/div64.h> 23816 #include <asm/div64.h>
24053@@ -2655,6 +2657,9 @@ void si_meminfo(struct sysinfo *val) 23817@@ -2899,6 +2901,9 @@ void si_meminfo(struct sysinfo *val)
24054 val->totalhigh = totalhigh_pages; 23818 val->totalhigh = totalhigh_pages;
24055 val->freehigh = nr_free_highpages(); 23819 val->freehigh = nr_free_highpages();
24056 val->mem_unit = PAGE_SIZE; 23820 val->mem_unit = PAGE_SIZE;
@@ -24060,7 +23824,7 @@ diff -NurpP --minimal linux-3.4.57/mm/page_alloc.c linux-3.4.57-vs2.3.3.9/mm/pag
24060 } 23824 }
24061 23825
24062 EXPORT_SYMBOL(si_meminfo); 23826 EXPORT_SYMBOL(si_meminfo);
24063@@ -2675,6 +2680,9 @@ void si_meminfo_node(struct sysinfo *val 23827@@ -2919,6 +2924,9 @@ void si_meminfo_node(struct sysinfo *val
24064 val->freehigh = 0; 23828 val->freehigh = 0;
24065 #endif 23829 #endif
24066 val->mem_unit = PAGE_SIZE; 23830 val->mem_unit = PAGE_SIZE;
@@ -24070,9 +23834,9 @@ diff -NurpP --minimal linux-3.4.57/mm/page_alloc.c linux-3.4.57-vs2.3.3.9/mm/pag
24070 } 23834 }
24071 #endif 23835 #endif
24072 23836
24073diff -NurpP --minimal linux-3.4.57/mm/pgtable-generic.c linux-3.4.57-vs2.3.3.9/mm/pgtable-generic.c 23837diff -NurpP --minimal linux-3.10.17/mm/pgtable-generic.c linux-3.10.17-vs2.3.6.6/mm/pgtable-generic.c
24074--- linux-3.4.57/mm/pgtable-generic.c 2012-05-21 16:07:35.000000000 +0000 23838--- linux-3.10.17/mm/pgtable-generic.c 2013-02-19 13:58:57.000000000 +0000
24075+++ linux-3.4.57-vs2.3.3.9/mm/pgtable-generic.c 2012-05-21 16:15:05.000000000 +0000 23839+++ linux-3.10.17-vs2.3.6.6/mm/pgtable-generic.c 2013-08-22 20:30:00.000000000 +0000
24076@@ -6,6 +6,8 @@ 23840@@ -6,6 +6,8 @@
24077 * Copyright (C) 2010 Linus Torvalds 23841 * Copyright (C) 2010 Linus Torvalds
24078 */ 23842 */
@@ -24082,10 +23846,10 @@ diff -NurpP --minimal linux-3.4.57/mm/pgtable-generic.c linux-3.4.57-vs2.3.3.9/m
24082 #include <linux/pagemap.h> 23846 #include <linux/pagemap.h>
24083 #include <asm/tlb.h> 23847 #include <asm/tlb.h>
24084 #include <asm-generic/pgtable.h> 23848 #include <asm-generic/pgtable.h>
24085diff -NurpP --minimal linux-3.4.57/mm/shmem.c linux-3.4.57-vs2.3.3.9/mm/shmem.c 23849diff -NurpP --minimal linux-3.10.17/mm/shmem.c linux-3.10.17-vs2.3.6.6/mm/shmem.c
24086--- linux-3.4.57/mm/shmem.c 2013-08-13 14:13:42.000000000 +0000 23850--- linux-3.10.17/mm/shmem.c 2013-10-25 15:17:45.000000000 +0000
24087+++ linux-3.4.57-vs2.3.3.9/mm/shmem.c 2013-03-02 15:26:44.000000000 +0000 23851+++ linux-3.10.17-vs2.3.6.6/mm/shmem.c 2013-10-26 18:03:17.000000000 +0000
24088@@ -1473,7 +1473,7 @@ static int shmem_statfs(struct dentry *d 23852@@ -1911,7 +1911,7 @@ static int shmem_statfs(struct dentry *d
24089 { 23853 {
24090 struct shmem_sb_info *sbinfo = SHMEM_SB(dentry->d_sb); 23854 struct shmem_sb_info *sbinfo = SHMEM_SB(dentry->d_sb);
24091 23855
@@ -24094,7 +23858,7 @@ diff -NurpP --minimal linux-3.4.57/mm/shmem.c linux-3.4.57-vs2.3.3.9/mm/shmem.c
24094 buf->f_bsize = PAGE_CACHE_SIZE; 23858 buf->f_bsize = PAGE_CACHE_SIZE;
24095 buf->f_namelen = NAME_MAX; 23859 buf->f_namelen = NAME_MAX;
24096 if (sbinfo->max_blocks) { 23860 if (sbinfo->max_blocks) {
24097@@ -2287,7 +2287,7 @@ int shmem_fill_super(struct super_block 23861@@ -2608,7 +2608,7 @@ int shmem_fill_super(struct super_block
24098 sb->s_maxbytes = MAX_LFS_FILESIZE; 23862 sb->s_maxbytes = MAX_LFS_FILESIZE;
24099 sb->s_blocksize = PAGE_CACHE_SIZE; 23863 sb->s_blocksize = PAGE_CACHE_SIZE;
24100 sb->s_blocksize_bits = PAGE_CACHE_SHIFT; 23864 sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
@@ -24103,10 +23867,10 @@ diff -NurpP --minimal linux-3.4.57/mm/shmem.c linux-3.4.57-vs2.3.3.9/mm/shmem.c
24103 sb->s_op = &shmem_ops; 23867 sb->s_op = &shmem_ops;
24104 sb->s_time_gran = 1; 23868 sb->s_time_gran = 1;
24105 #ifdef CONFIG_TMPFS_XATTR 23869 #ifdef CONFIG_TMPFS_XATTR
24106diff -NurpP --minimal linux-3.4.57/mm/slab.c linux-3.4.57-vs2.3.3.9/mm/slab.c 23870diff -NurpP --minimal linux-3.10.17/mm/slab.c linux-3.10.17-vs2.3.6.6/mm/slab.c
24107--- linux-3.4.57/mm/slab.c 2013-08-13 14:13:42.000000000 +0000 23871--- linux-3.10.17/mm/slab.c 2013-10-25 15:17:45.000000000 +0000
24108+++ linux-3.4.57-vs2.3.3.9/mm/slab.c 2012-10-22 13:09:53.000000000 +0000 23872+++ linux-3.10.17-vs2.3.6.6/mm/slab.c 2013-08-22 21:01:54.000000000 +0000
24109@@ -413,6 +413,8 @@ static void kmem_list3_init(struct kmem_ 23873@@ -388,6 +388,8 @@ static void kmem_cache_node_init(struct
24110 #define STATS_INC_FREEMISS(x) do { } while (0) 23874 #define STATS_INC_FREEMISS(x) do { } while (0)
24111 #endif 23875 #endif
24112 23876
@@ -24115,33 +23879,33 @@ diff -NurpP --minimal linux-3.4.57/mm/slab.c linux-3.4.57-vs2.3.3.9/mm/slab.c
24115 #if DEBUG 23879 #if DEBUG
24116 23880
24117 /* 23881 /*
24118@@ -3466,6 +3468,7 @@ retry: 23882@@ -3314,6 +3316,7 @@ retry:
24119 23883
24120 obj = slab_get_obj(cachep, slabp, nodeid); 23884 obj = slab_get_obj(cachep, slabp, nodeid);
24121 check_slabp(cachep, slabp); 23885 check_slabp(cachep, slabp);
24122+ vx_slab_alloc(cachep, flags); 23886+ vx_slab_alloc(cachep, flags);
24123 l3->free_objects--; 23887 n->free_objects--;
24124 /* move slabp to correct slabp list: */ 23888 /* move slabp to correct slabp list: */
24125 list_del(&slabp->list); 23889 list_del(&slabp->list);
24126@@ -3543,6 +3546,7 @@ __cache_alloc_node(struct kmem_cache *ca 23890@@ -3393,6 +3396,7 @@ slab_alloc_node(struct kmem_cache *cache
24127 /* ___cache_alloc_node can fall back to other nodes */ 23891 /* ___cache_alloc_node can fall back to other nodes */
24128 ptr = ____cache_alloc_node(cachep, flags, nodeid); 23892 ptr = ____cache_alloc_node(cachep, flags, nodeid);
24129 out: 23893 out:
24130+ vx_slab_alloc(cachep, flags); 23894+ vx_slab_alloc(cachep, flags);
24131 local_irq_restore(save_flags); 23895 local_irq_restore(save_flags);
24132 ptr = cache_alloc_debugcheck_after(cachep, flags, ptr, caller); 23896 ptr = cache_alloc_debugcheck_after(cachep, flags, ptr, caller);
24133 kmemleak_alloc_recursive(ptr, obj_size(cachep), 1, cachep->flags, 23897 kmemleak_alloc_recursive(ptr, cachep->object_size, 1, cachep->flags,
24134@@ -3730,6 +3734,7 @@ static inline void __cache_free(struct k 23898@@ -3585,6 +3589,7 @@ static inline void __cache_free(struct k
24135 check_irq_off(); 23899 check_irq_off();
24136 kmemleak_free_recursive(objp, cachep->flags); 23900 kmemleak_free_recursive(objp, cachep->flags);
24137 objp = cache_free_debugcheck(cachep, objp, caller); 23901 objp = cache_free_debugcheck(cachep, objp, caller);
24138+ vx_slab_free(cachep); 23902+ vx_slab_free(cachep);
24139 23903
24140 kmemcheck_slab_free(cachep, objp, obj_size(cachep)); 23904 kmemcheck_slab_free(cachep, objp, cachep->object_size);
24141 23905
24142diff -NurpP --minimal linux-3.4.57/mm/slab_vs.h linux-3.4.57-vs2.3.3.9/mm/slab_vs.h 23906diff -NurpP --minimal linux-3.10.17/mm/slab_vs.h linux-3.10.17-vs2.3.6.6/mm/slab_vs.h
24143--- linux-3.4.57/mm/slab_vs.h 1970-01-01 00:00:00.000000000 +0000 23907--- linux-3.10.17/mm/slab_vs.h 1970-01-01 00:00:00.000000000 +0000
24144+++ linux-3.4.57-vs2.3.3.9/mm/slab_vs.h 2012-05-21 16:15:05.000000000 +0000 23908+++ linux-3.10.17-vs2.3.6.6/mm/slab_vs.h 2013-08-22 20:30:00.000000000 +0000
24145@@ -0,0 +1,29 @@ 23909@@ -0,0 +1,29 @@
24146+ 23910+
24147+#include <linux/vserver/context.h> 23911+#include <linux/vserver/context.h>
@@ -24151,31 +23915,31 @@ diff -NurpP --minimal linux-3.4.57/mm/slab_vs.h linux-3.4.57-vs2.3.3.9/mm/slab_v
24151+static inline 23915+static inline
24152+void vx_slab_alloc(struct kmem_cache *cachep, gfp_t flags) 23916+void vx_slab_alloc(struct kmem_cache *cachep, gfp_t flags)
24153+{ 23917+{
24154+ int what = gfp_zone(cachep->gfpflags); 23918+ int what = gfp_zone(cachep->allocflags);
24155+ struct vx_info *vxi = current_vx_info(); 23919+ struct vx_info *vxi = current_vx_info();
24156+ 23920+
24157+ if (!vxi) 23921+ if (!vxi)
24158+ return; 23922+ return;
24159+ 23923+
24160+ atomic_add(cachep->buffer_size, &vxi->cacct.slab[what]); 23924+ atomic_add(cachep->size, &vxi->cacct.slab[what]);
24161+} 23925+}
24162+ 23926+
24163+static inline 23927+static inline
24164+void vx_slab_free(struct kmem_cache *cachep) 23928+void vx_slab_free(struct kmem_cache *cachep)
24165+{ 23929+{
24166+ int what = gfp_zone(cachep->gfpflags); 23930+ int what = gfp_zone(cachep->allocflags);
24167+ struct vx_info *vxi = current_vx_info(); 23931+ struct vx_info *vxi = current_vx_info();
24168+ 23932+
24169+ if (!vxi) 23933+ if (!vxi)
24170+ return; 23934+ return;
24171+ 23935+
24172+ atomic_sub(cachep->buffer_size, &vxi->cacct.slab[what]); 23936+ atomic_sub(cachep->size, &vxi->cacct.slab[what]);
24173+} 23937+}
24174+ 23938+
24175diff -NurpP --minimal linux-3.4.57/mm/swapfile.c linux-3.4.57-vs2.3.3.9/mm/swapfile.c 23939diff -NurpP --minimal linux-3.10.17/mm/swapfile.c linux-3.10.17-vs2.3.6.6/mm/swapfile.c
24176--- linux-3.4.57/mm/swapfile.c 2013-08-13 14:13:42.000000000 +0000 23940--- linux-3.10.17/mm/swapfile.c 2013-07-14 17:01:36.000000000 +0000
24177+++ linux-3.4.57-vs2.3.3.9/mm/swapfile.c 2012-06-28 14:45:07.000000000 +0000 23941+++ linux-3.10.17-vs2.3.6.6/mm/swapfile.c 2013-08-22 20:30:00.000000000 +0000
24178@@ -36,6 +36,7 @@ 23942@@ -39,6 +39,7 @@
24179 #include <asm/tlbflush.h> 23943 #include <asm/tlbflush.h>
24180 #include <linux/swapops.h> 23944 #include <linux/swapops.h>
24181 #include <linux/page_cgroup.h> 23945 #include <linux/page_cgroup.h>
@@ -24183,7 +23947,7 @@ diff -NurpP --minimal linux-3.4.57/mm/swapfile.c linux-3.4.57-vs2.3.3.9/mm/swapf
24183 23947
24184 static bool swap_count_continued(struct swap_info_struct *, pgoff_t, 23948 static bool swap_count_continued(struct swap_info_struct *, pgoff_t,
24185 unsigned char); 23949 unsigned char);
24186@@ -1754,6 +1755,16 @@ static int swap_show(struct seq_file *sw 23950@@ -1768,6 +1769,16 @@ static int swap_show(struct seq_file *sw
24187 23951
24188 if (si == SEQ_START_TOKEN) { 23952 if (si == SEQ_START_TOKEN) {
24189 seq_puts(swap,"Filename\t\t\t\tType\t\tSize\tUsed\tPriority\n"); 23953 seq_puts(swap,"Filename\t\t\t\tType\t\tSize\tUsed\tPriority\n");
@@ -24200,8 +23964,8 @@ diff -NurpP --minimal linux-3.4.57/mm/swapfile.c linux-3.4.57-vs2.3.3.9/mm/swapf
24200 return 0; 23964 return 0;
24201 } 23965 }
24202 23966
24203@@ -2176,6 +2187,8 @@ void si_swapinfo(struct sysinfo *val) 23967@@ -2196,6 +2207,8 @@ void si_swapinfo(struct sysinfo *val)
24204 val->freeswap = nr_swap_pages + nr_to_be_unused; 23968 val->freeswap = atomic_long_read(&nr_swap_pages) + nr_to_be_unused;
24205 val->totalswap = total_swap_pages + nr_to_be_unused; 23969 val->totalswap = total_swap_pages + nr_to_be_unused;
24206 spin_unlock(&swap_lock); 23970 spin_unlock(&swap_lock);
24207+ if (vx_flags(VXF_VIRT_MEM, 0)) 23971+ if (vx_flags(VXF_VIRT_MEM, 0))
@@ -24209,10 +23973,10 @@ diff -NurpP --minimal linux-3.4.57/mm/swapfile.c linux-3.4.57-vs2.3.3.9/mm/swapf
24209 } 23973 }
24210 23974
24211 /* 23975 /*
24212diff -NurpP --minimal linux-3.4.57/net/bridge/br_multicast.c linux-3.4.57-vs2.3.3.9/net/bridge/br_multicast.c 23976diff -NurpP --minimal linux-3.10.17/net/bridge/br_multicast.c linux-3.10.17-vs2.3.6.6/net/bridge/br_multicast.c
24213--- linux-3.4.57/net/bridge/br_multicast.c 2013-08-13 14:13:43.000000000 +0000 23977--- linux-3.10.17/net/bridge/br_multicast.c 2013-10-25 15:17:45.000000000 +0000
24214+++ linux-3.4.57-vs2.3.3.9/net/bridge/br_multicast.c 2013-08-13 17:07:37.000000000 +0000 23978+++ linux-3.10.17-vs2.3.6.6/net/bridge/br_multicast.c 2013-10-09 17:37:22.000000000 +0000
24215@@ -445,7 +445,7 @@ static struct sk_buff *br_ip6_multicast_ 23979@@ -443,7 +443,7 @@ static struct sk_buff *br_ip6_multicast_
24216 ip6h->hop_limit = 1; 23980 ip6h->hop_limit = 1;
24217 ipv6_addr_set(&ip6h->daddr, htonl(0xff020000), 0, 0, htonl(1)); 23981 ipv6_addr_set(&ip6h->daddr, htonl(0xff020000), 0, 0, htonl(1));
24218 if (ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0, 23982 if (ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0,
@@ -24221,10 +23985,10 @@ diff -NurpP --minimal linux-3.4.57/net/bridge/br_multicast.c linux-3.4.57-vs2.3.
24221 kfree_skb(skb); 23985 kfree_skb(skb);
24222 return NULL; 23986 return NULL;
24223 } 23987 }
24224diff -NurpP --minimal linux-3.4.57/net/core/dev.c linux-3.4.57-vs2.3.3.9/net/core/dev.c 23988diff -NurpP --minimal linux-3.10.17/net/core/dev.c linux-3.10.17-vs2.3.6.6/net/core/dev.c
24225--- linux-3.4.57/net/core/dev.c 2013-08-13 14:13:43.000000000 +0000 23989--- linux-3.10.17/net/core/dev.c 2013-10-25 15:17:46.000000000 +0000
24226+++ linux-3.4.57-vs2.3.3.9/net/core/dev.c 2013-07-14 13:38:37.000000000 +0000 23990+++ linux-3.10.17-vs2.3.6.6/net/core/dev.c 2013-08-22 20:30:00.000000000 +0000
24227@@ -126,6 +126,7 @@ 23991@@ -122,6 +122,7 @@
24228 #include <linux/in.h> 23992 #include <linux/in.h>
24229 #include <linux/jhash.h> 23993 #include <linux/jhash.h>
24230 #include <linux/random.h> 23994 #include <linux/random.h>
@@ -24232,46 +23996,46 @@ diff -NurpP --minimal linux-3.4.57/net/core/dev.c linux-3.4.57-vs2.3.3.9/net/cor
24232 #include <trace/events/napi.h> 23996 #include <trace/events/napi.h>
24233 #include <trace/events/net.h> 23997 #include <trace/events/net.h>
24234 #include <trace/events/skb.h> 23998 #include <trace/events/skb.h>
24235@@ -621,7 +622,8 @@ struct net_device *__dev_get_by_name(str 23999@@ -660,7 +661,8 @@ struct net_device *__dev_get_by_name(str
24236 struct hlist_head *head = dev_name_hash(net, name); 24000 struct hlist_head *head = dev_name_hash(net, name);
24237 24001
24238 hlist_for_each_entry(dev, p, head, name_hlist) 24002 hlist_for_each_entry(dev, head, name_hlist)
24239- if (!strncmp(dev->name, name, IFNAMSIZ)) 24003- if (!strncmp(dev->name, name, IFNAMSIZ))
24240+ if (!strncmp(dev->name, name, IFNAMSIZ) && 24004+ if (!strncmp(dev->name, name, IFNAMSIZ) &&
24241+ nx_dev_visible(current_nx_info(), dev)) 24005+ nx_dev_visible(current_nx_info(), dev))
24242 return dev; 24006 return dev;
24243 24007
24244 return NULL; 24008 return NULL;
24245@@ -647,7 +649,8 @@ struct net_device *dev_get_by_name_rcu(s 24009@@ -685,7 +687,8 @@ struct net_device *dev_get_by_name_rcu(s
24246 struct hlist_head *head = dev_name_hash(net, name); 24010 struct hlist_head *head = dev_name_hash(net, name);
24247 24011
24248 hlist_for_each_entry_rcu(dev, p, head, name_hlist) 24012 hlist_for_each_entry_rcu(dev, head, name_hlist)
24249- if (!strncmp(dev->name, name, IFNAMSIZ)) 24013- if (!strncmp(dev->name, name, IFNAMSIZ))
24250+ if (!strncmp(dev->name, name, IFNAMSIZ) && 24014+ if (!strncmp(dev->name, name, IFNAMSIZ) &&
24251+ nx_dev_visible(current_nx_info(), dev)) 24015+ nx_dev_visible(current_nx_info(), dev))
24252 return dev; 24016 return dev;
24253 24017
24254 return NULL; 24018 return NULL;
24255@@ -698,7 +701,8 @@ struct net_device *__dev_get_by_index(st 24019@@ -735,7 +738,8 @@ struct net_device *__dev_get_by_index(st
24256 struct hlist_head *head = dev_index_hash(net, ifindex); 24020 struct hlist_head *head = dev_index_hash(net, ifindex);
24257 24021
24258 hlist_for_each_entry(dev, p, head, index_hlist) 24022 hlist_for_each_entry(dev, head, index_hlist)
24259- if (dev->ifindex == ifindex) 24023- if (dev->ifindex == ifindex)
24260+ if ((dev->ifindex == ifindex) && 24024+ if ((dev->ifindex == ifindex) &&
24261+ nx_dev_visible(current_nx_info(), dev)) 24025+ nx_dev_visible(current_nx_info(), dev))
24262 return dev; 24026 return dev;
24263 24027
24264 return NULL; 24028 return NULL;
24265@@ -716,7 +720,7 @@ EXPORT_SYMBOL(__dev_get_by_index); 24029@@ -753,7 +757,7 @@ EXPORT_SYMBOL(__dev_get_by_index);
24266 * about locking. The caller must hold RCU lock. 24030 * about locking. The caller must hold RCU lock.
24267 */ 24031 */
24268 24032
24269-struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex) 24033-struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex)
24270+struct net_device *dev_get_by_index_real_rcu(struct net *net, int ifindex) 24034+struct net_device *dev_get_by_index_real_rcu(struct net *net, int ifindex)
24271 { 24035 {
24272 struct hlist_node *p;
24273 struct net_device *dev; 24036 struct net_device *dev;
24274@@ -728,6 +732,16 @@ struct net_device *dev_get_by_index_rcu( 24037 struct hlist_head *head = dev_index_hash(net, ifindex);
24038@@ -764,6 +768,16 @@ struct net_device *dev_get_by_index_rcu(
24275 24039
24276 return NULL; 24040 return NULL;
24277 } 24041 }
@@ -24288,7 +24052,7 @@ diff -NurpP --minimal linux-3.4.57/net/core/dev.c linux-3.4.57-vs2.3.3.9/net/cor
24288 EXPORT_SYMBOL(dev_get_by_index_rcu); 24052 EXPORT_SYMBOL(dev_get_by_index_rcu);
24289 24053
24290 24054
24291@@ -776,7 +790,8 @@ struct net_device *dev_getbyhwaddr_rcu(s 24055@@ -846,7 +860,8 @@ struct net_device *dev_getbyhwaddr_rcu(s
24292 24056
24293 for_each_netdev_rcu(net, dev) 24057 for_each_netdev_rcu(net, dev)
24294 if (dev->type == type && 24058 if (dev->type == type &&
@@ -24298,7 +24062,7 @@ diff -NurpP --minimal linux-3.4.57/net/core/dev.c linux-3.4.57-vs2.3.3.9/net/cor
24298 return dev; 24062 return dev;
24299 24063
24300 return NULL; 24064 return NULL;
24301@@ -788,9 +803,11 @@ struct net_device *__dev_getfirstbyhwtyp 24065@@ -858,9 +873,11 @@ struct net_device *__dev_getfirstbyhwtyp
24302 struct net_device *dev; 24066 struct net_device *dev;
24303 24067
24304 ASSERT_RTNL(); 24068 ASSERT_RTNL();
@@ -24312,7 +24076,27 @@ diff -NurpP --minimal linux-3.4.57/net/core/dev.c linux-3.4.57-vs2.3.3.9/net/cor
24312 24076
24313 return NULL; 24077 return NULL;
24314 } 24078 }
24315@@ -908,6 +925,8 @@ static int __dev_alloc_name(struct net * 24079@@ -872,7 +889,8 @@ struct net_device *dev_getfirstbyhwtype(
24080
24081 rcu_read_lock();
24082 for_each_netdev_rcu(net, dev)
24083- if (dev->type == type) {
24084+ if ((dev->type == type) &&
24085+ nx_dev_visible(current_nx_info(), dev)) {
24086 dev_hold(dev);
24087 ret = dev;
24088 break;
24089@@ -900,7 +918,8 @@ struct net_device *dev_get_by_flags_rcu(
24090
24091 ret = NULL;
24092 for_each_netdev_rcu(net, dev) {
24093- if (((dev->flags ^ if_flags) & mask) == 0) {
24094+ if ((((dev->flags ^ if_flags) & mask) == 0) &&
24095+ nx_dev_visible(current_nx_info(), dev)) {
24096 ret = dev;
24097 break;
24098 }
24099@@ -978,6 +997,8 @@ static int __dev_alloc_name(struct net *
24316 continue; 24100 continue;
24317 if (i < 0 || i >= max_netdevices) 24101 if (i < 0 || i >= max_netdevices)
24318 continue; 24102 continue;
@@ -24321,39 +24105,45 @@ diff -NurpP --minimal linux-3.4.57/net/core/dev.c linux-3.4.57-vs2.3.3.9/net/cor
24321 24105
24322 /* avoid cases where sscanf is not exact inverse of printf */ 24106 /* avoid cases where sscanf is not exact inverse of printf */
24323 snprintf(buf, IFNAMSIZ, name, i); 24107 snprintf(buf, IFNAMSIZ, name, i);
24324@@ -4009,6 +4028,8 @@ static int dev_ifconf(struct net *net, c 24108diff -NurpP --minimal linux-3.10.17/net/core/net-procfs.c linux-3.10.17-vs2.3.6.6/net/core/net-procfs.c
24109--- linux-3.10.17/net/core/net-procfs.c 2013-07-14 17:01:37.000000000 +0000
24110+++ linux-3.10.17-vs2.3.6.6/net/core/net-procfs.c 2013-08-22 20:30:00.000000000 +0000
24111@@ -1,6 +1,7 @@
24112 #include <linux/netdevice.h>
24113 #include <linux/proc_fs.h>
24114 #include <linux/seq_file.h>
24115+#include <linux/vs_inet.h>
24116 #include <net/wext.h>
24325 24117
24326 total = 0; 24118 #define BUCKET_SPACE (32 - NETDEV_HASHBITS - 1)
24327 for_each_netdev(net, dev) { 24119@@ -77,8 +78,13 @@ static void dev_seq_stop(struct seq_file
24328+ if (!nx_dev_visible(current_nx_info(), dev)) 24120 static void dev_seq_printf_stats(struct seq_file *seq, struct net_device *dev)
24329+ continue; 24121 {
24330 for (i = 0; i < NPROTO; i++) {
24331 if (gifconf_list[i]) {
24332 int done;
24333@@ -4111,6 +4132,10 @@ static void dev_seq_printf_stats(struct
24334 struct rtnl_link_stats64 temp; 24122 struct rtnl_link_stats64 temp;
24335 const struct rtnl_link_stats64 *stats = dev_get_stats(dev, &temp); 24123- const struct rtnl_link_stats64 *stats = dev_get_stats(dev, &temp);
24336 24124+ const struct rtnl_link_stats64 *stats;
24125+
24337+ /* device visible inside network context? */ 24126+ /* device visible inside network context? */
24338+ if (!nx_dev_visible(current_nx_info(), dev)) 24127+ if (!nx_dev_visible(current_nx_info(), dev))
24339+ return; 24128+ return;
24340+ 24129
24130+ stats = dev_get_stats(dev, &temp);
24341 seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu " 24131 seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
24342 "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n", 24132 "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
24343 dev->name, stats->rx_bytes, stats->rx_packets, 24133 dev->name, stats->rx_bytes, stats->rx_packets,
24344diff -NurpP --minimal linux-3.4.57/net/core/rtnetlink.c linux-3.4.57-vs2.3.3.9/net/core/rtnetlink.c 24134diff -NurpP --minimal linux-3.10.17/net/core/rtnetlink.c linux-3.10.17-vs2.3.6.6/net/core/rtnetlink.c
24345--- linux-3.4.57/net/core/rtnetlink.c 2013-08-13 14:13:43.000000000 +0000 24135--- linux-3.10.17/net/core/rtnetlink.c 2013-10-25 15:17:46.000000000 +0000
24346+++ linux-3.4.57-vs2.3.3.9/net/core/rtnetlink.c 2013-07-14 13:38:37.000000000 +0000 24136+++ linux-3.10.17-vs2.3.6.6/net/core/rtnetlink.c 2013-10-09 17:37:22.000000000 +0000
24347@@ -1079,6 +1079,8 @@ static int rtnl_dump_ifinfo(struct sk_bu 24137@@ -1059,6 +1059,8 @@ static int rtnl_dump_ifinfo(struct sk_bu
24348 hlist_for_each_entry_rcu(dev, node, head, index_hlist) { 24138 hlist_for_each_entry_rcu(dev, head, index_hlist) {
24349 if (idx < s_idx) 24139 if (idx < s_idx)
24350 goto cont; 24140 goto cont;
24351+ if (!nx_dev_visible(skb->sk->sk_nx_info, dev)) 24141+ if (!nx_dev_visible(skb->sk->sk_nx_info, dev))
24352+ continue; 24142+ continue;
24353 if (rtnl_fill_ifinfo(skb, dev, RTM_NEWLINK, 24143 if (rtnl_fill_ifinfo(skb, dev, RTM_NEWLINK,
24354 NETLINK_CB(cb->skb).pid, 24144 NETLINK_CB(cb->skb).portid,
24355 cb->nlh->nlmsg_seq, 0, 24145 cb->nlh->nlmsg_seq, 0,
24356@@ -1962,6 +1964,9 @@ void rtmsg_ifinfo(int type, struct net_d 24146@@ -1951,6 +1953,9 @@ void rtmsg_ifinfo(int type, struct net_d
24357 int err = -ENOBUFS; 24147 int err = -ENOBUFS;
24358 size_t if_info_size; 24148 size_t if_info_size;
24359 24149
@@ -24363,10 +24153,10 @@ diff -NurpP --minimal linux-3.4.57/net/core/rtnetlink.c linux-3.4.57-vs2.3.3.9/n
24363 skb = nlmsg_new((if_info_size = if_nlmsg_size(dev, 0)), GFP_KERNEL); 24153 skb = nlmsg_new((if_info_size = if_nlmsg_size(dev, 0)), GFP_KERNEL);
24364 if (skb == NULL) 24154 if (skb == NULL)
24365 goto errout; 24155 goto errout;
24366diff -NurpP --minimal linux-3.4.57/net/core/sock.c linux-3.4.57-vs2.3.3.9/net/core/sock.c 24156diff -NurpP --minimal linux-3.10.17/net/core/sock.c linux-3.10.17-vs2.3.6.6/net/core/sock.c
24367--- linux-3.4.57/net/core/sock.c 2013-08-13 14:13:44.000000000 +0000 24157--- linux-3.10.17/net/core/sock.c 2013-07-14 17:01:37.000000000 +0000
24368+++ linux-3.4.57-vs2.3.3.9/net/core/sock.c 2013-07-14 13:38:37.000000000 +0000 24158+++ linux-3.10.17-vs2.3.6.6/net/core/sock.c 2013-08-22 20:30:00.000000000 +0000
24369@@ -129,6 +129,10 @@ 24159@@ -132,6 +132,10 @@
24370 #include <net/netprio_cgroup.h> 24160 #include <net/netprio_cgroup.h>
24371 24161
24372 #include <linux/filter.h> 24162 #include <linux/filter.h>
@@ -24377,7 +24167,7 @@ diff -NurpP --minimal linux-3.4.57/net/core/sock.c linux-3.4.57-vs2.3.3.9/net/co
24377 24167
24378 #include <trace/events/sock.h> 24168 #include <trace/events/sock.h>
24379 24169
24380@@ -1141,6 +1145,8 @@ static struct sock *sk_prot_alloc(struct 24170@@ -1252,6 +1256,8 @@ static struct sock *sk_prot_alloc(struct
24381 goto out_free_sec; 24171 goto out_free_sec;
24382 sk_tx_queue_clear(sk); 24172 sk_tx_queue_clear(sk);
24383 } 24173 }
@@ -24386,7 +24176,7 @@ diff -NurpP --minimal linux-3.4.57/net/core/sock.c linux-3.4.57-vs2.3.3.9/net/co
24386 24176
24387 return sk; 24177 return sk;
24388 24178
24389@@ -1249,6 +1255,11 @@ static void __sk_free(struct sock *sk) 24179@@ -1360,6 +1366,11 @@ static void __sk_free(struct sock *sk)
24390 put_cred(sk->sk_peer_cred); 24180 put_cred(sk->sk_peer_cred);
24391 put_pid(sk->sk_peer_pid); 24181 put_pid(sk->sk_peer_pid);
24392 put_net(sock_net(sk)); 24182 put_net(sock_net(sk));
@@ -24398,7 +24188,7 @@ diff -NurpP --minimal linux-3.4.57/net/core/sock.c linux-3.4.57-vs2.3.3.9/net/co
24398 sk_prot_free(sk->sk_prot_creator, sk); 24188 sk_prot_free(sk->sk_prot_creator, sk);
24399 } 24189 }
24400 24190
24401@@ -1309,6 +1320,8 @@ struct sock *sk_clone_lock(const struct 24191@@ -1420,6 +1431,8 @@ struct sock *sk_clone_lock(const struct
24402 24192
24403 /* SANITY */ 24193 /* SANITY */
24404 get_net(sock_net(newsk)); 24194 get_net(sock_net(newsk));
@@ -24407,7 +24197,7 @@ diff -NurpP --minimal linux-3.4.57/net/core/sock.c linux-3.4.57-vs2.3.3.9/net/co
24407 sk_node_init(&newsk->sk_node); 24197 sk_node_init(&newsk->sk_node);
24408 sock_lock_init(newsk); 24198 sock_lock_init(newsk);
24409 bh_lock_sock(newsk); 24199 bh_lock_sock(newsk);
24410@@ -1365,6 +1378,12 @@ struct sock *sk_clone_lock(const struct 24200@@ -1476,6 +1489,12 @@ struct sock *sk_clone_lock(const struct
24411 smp_wmb(); 24201 smp_wmb();
24412 atomic_set(&newsk->sk_refcnt, 2); 24202 atomic_set(&newsk->sk_refcnt, 2);
24413 24203
@@ -24420,7 +24210,7 @@ diff -NurpP --minimal linux-3.4.57/net/core/sock.c linux-3.4.57-vs2.3.3.9/net/co
24420 /* 24210 /*
24421 * Increment the counter in the same struct proto as the master 24211 * Increment the counter in the same struct proto as the master
24422 * sock (sk_refcnt_debug_inc uses newsk->sk_prot->socks, that 24212 * sock (sk_refcnt_debug_inc uses newsk->sk_prot->socks, that
24423@@ -2121,6 +2140,12 @@ void sock_init_data(struct socket *sock, 24213@@ -2271,6 +2290,12 @@ void sock_init_data(struct socket *sock,
24424 24214
24425 sk->sk_stamp = ktime_set(-1L, 0); 24215 sk->sk_stamp = ktime_set(-1L, 0);
24426 24216
@@ -24433,9 +24223,9 @@ diff -NurpP --minimal linux-3.4.57/net/core/sock.c linux-3.4.57-vs2.3.3.9/net/co
24433 /* 24223 /*
24434 * Before updating sk_refcnt, we must commit prior changes to memory 24224 * Before updating sk_refcnt, we must commit prior changes to memory
24435 * (Documentation/RCU/rculist_nulls.txt for details) 24225 * (Documentation/RCU/rculist_nulls.txt for details)
24436diff -NurpP --minimal linux-3.4.57/net/ipv4/af_inet.c linux-3.4.57-vs2.3.3.9/net/ipv4/af_inet.c 24226diff -NurpP --minimal linux-3.10.17/net/ipv4/af_inet.c linux-3.10.17-vs2.3.6.6/net/ipv4/af_inet.c
24437--- linux-3.4.57/net/ipv4/af_inet.c 2013-08-13 14:13:44.000000000 +0000 24227--- linux-3.10.17/net/ipv4/af_inet.c 2013-10-25 15:17:46.000000000 +0000
24438+++ linux-3.4.57-vs2.3.3.9/net/ipv4/af_inet.c 2013-03-02 15:26:44.000000000 +0000 24228+++ linux-3.10.17-vs2.3.6.6/net/ipv4/af_inet.c 2013-10-26 18:03:17.000000000 +0000
24439@@ -118,6 +118,7 @@ 24229@@ -118,6 +118,7 @@
24440 #ifdef CONFIG_IP_MROUTE 24230 #ifdef CONFIG_IP_MROUTE
24441 #include <linux/mroute.h> 24231 #include <linux/mroute.h>
@@ -24444,43 +24234,43 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/af_inet.c linux-3.4.57-vs2.3.3.9/net
24444 24234
24445 24235
24446 /* The inetsw table contains everything that inet_create needs to 24236 /* The inetsw table contains everything that inet_create needs to
24447@@ -332,9 +333,13 @@ lookup_protocol: 24237@@ -336,10 +337,13 @@ lookup_protocol:
24448 } 24238 }
24449 24239
24450 err = -EPERM; 24240 err = -EPERM;
24451+ if ((protocol == IPPROTO_ICMP) && 24241+ if ((protocol == IPPROTO_ICMP) &&
24452+ nx_capable(CAP_NET_RAW, NXC_RAW_ICMP)) 24242+ nx_capable(CAP_NET_RAW, NXC_RAW_ICMP))
24453+ goto override; 24243+ goto override;
24454+ 24244 if (sock->type == SOCK_RAW && !kern &&
24455 if (sock->type == SOCK_RAW && !kern && !capable(CAP_NET_RAW)) 24245 !ns_capable(net->user_ns, CAP_NET_RAW))
24456 goto out_rcu_unlock; 24246 goto out_rcu_unlock;
24457- 24247-
24458+override: 24248+override:
24459 err = -EAFNOSUPPORT; 24249 sock->ops = answer->ops;
24460 if (!inet_netns_ok(net, protocol)) 24250 answer_prot = answer->prot;
24461 goto out_rcu_unlock; 24251 answer_no_check = answer->no_check;
24462@@ -459,6 +464,7 @@ int inet_bind(struct socket *sock, struc 24252@@ -460,6 +464,7 @@ int inet_bind(struct socket *sock, struc
24463 struct sockaddr_in *addr = (struct sockaddr_in *)uaddr; 24253 struct sockaddr_in *addr = (struct sockaddr_in *)uaddr;
24464 struct sock *sk = sock->sk; 24254 struct sock *sk = sock->sk;
24465 struct inet_sock *inet = inet_sk(sk); 24255 struct inet_sock *inet = inet_sk(sk);
24466+ struct nx_v4_sock_addr nsa; 24256+ struct nx_v4_sock_addr nsa;
24257 struct net *net = sock_net(sk);
24467 unsigned short snum; 24258 unsigned short snum;
24468 int chk_addr_ret; 24259 int chk_addr_ret;
24469 int err; 24260@@ -484,7 +489,11 @@ int inet_bind(struct socket *sock, struc
24470@@ -482,7 +488,11 @@ int inet_bind(struct socket *sock, struc
24471 goto out; 24261 goto out;
24472 } 24262 }
24473 24263
24474- chk_addr_ret = inet_addr_type(sock_net(sk), addr->sin_addr.s_addr); 24264- chk_addr_ret = inet_addr_type(net, addr->sin_addr.s_addr);
24475+ err = v4_map_sock_addr(inet, addr, &nsa); 24265+ err = v4_map_sock_addr(inet, addr, &nsa);
24476+ if (err) 24266+ if (err)
24477+ goto out; 24267+ goto out;
24478+ 24268+
24479+ chk_addr_ret = inet_addr_type(sock_net(sk), nsa.saddr); 24269+ chk_addr_ret = inet_addr_type(net, nsa.saddr);
24480 24270
24481 /* Not specified by any standard per-se, however it breaks too 24271 /* Not specified by any standard per-se, however it breaks too
24482 * many applications when removed. It is unfortunate since 24272 * many applications when removed. It is unfortunate since
24483@@ -494,7 +504,7 @@ int inet_bind(struct socket *sock, struc 24273@@ -496,7 +505,7 @@ int inet_bind(struct socket *sock, struc
24484 err = -EADDRNOTAVAIL; 24274 err = -EADDRNOTAVAIL;
24485 if (!sysctl_ip_nonlocal_bind && 24275 if (!sysctl_ip_nonlocal_bind &&
24486 !(inet->freebind || inet->transparent) && 24276 !(inet->freebind || inet->transparent) &&
@@ -24489,7 +24279,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/af_inet.c linux-3.4.57-vs2.3.3.9/net
24489 chk_addr_ret != RTN_LOCAL && 24279 chk_addr_ret != RTN_LOCAL &&
24490 chk_addr_ret != RTN_MULTICAST && 24280 chk_addr_ret != RTN_MULTICAST &&
24491 chk_addr_ret != RTN_BROADCAST) 24281 chk_addr_ret != RTN_BROADCAST)
24492@@ -519,7 +529,7 @@ int inet_bind(struct socket *sock, struc 24282@@ -522,7 +531,7 @@ int inet_bind(struct socket *sock, struc
24493 if (sk->sk_state != TCP_CLOSE || inet->inet_num) 24283 if (sk->sk_state != TCP_CLOSE || inet->inet_num)
24494 goto out_release_sock; 24284 goto out_release_sock;
24495 24285
@@ -24498,7 +24288,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/af_inet.c linux-3.4.57-vs2.3.3.9/net
24498 if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST) 24288 if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST)
24499 inet->inet_saddr = 0; /* Use device */ 24289 inet->inet_saddr = 0; /* Use device */
24500 24290
24501@@ -722,11 +732,13 @@ int inet_getname(struct socket *sock, st 24291@@ -741,11 +750,13 @@ int inet_getname(struct socket *sock, st
24502 peer == 1)) 24292 peer == 1))
24503 return -ENOTCONN; 24293 return -ENOTCONN;
24504 sin->sin_port = inet->inet_dport; 24294 sin->sin_port = inet->inet_dport;
@@ -24513,10 +24303,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/af_inet.c linux-3.4.57-vs2.3.3.9/net
24513 sin->sin_port = inet->inet_sport; 24303 sin->sin_port = inet->inet_sport;
24514 sin->sin_addr.s_addr = addr; 24304 sin->sin_addr.s_addr = addr;
24515 } 24305 }
24516diff -NurpP --minimal linux-3.4.57/net/ipv4/arp.c linux-3.4.57-vs2.3.3.9/net/ipv4/arp.c 24306diff -NurpP --minimal linux-3.10.17/net/ipv4/arp.c linux-3.10.17-vs2.3.6.6/net/ipv4/arp.c
24517--- linux-3.4.57/net/ipv4/arp.c 2012-05-21 16:07:40.000000000 +0000 24307--- linux-3.10.17/net/ipv4/arp.c 2013-07-14 17:01:37.000000000 +0000
24518+++ linux-3.4.57-vs2.3.3.9/net/ipv4/arp.c 2012-05-21 16:15:05.000000000 +0000 24308+++ linux-3.10.17-vs2.3.6.6/net/ipv4/arp.c 2013-08-22 20:30:00.000000000 +0000
24519@@ -1328,6 +1328,7 @@ static void arp_format_neigh_entry(struc 24309@@ -1332,6 +1332,7 @@ static void arp_format_neigh_entry(struc
24520 struct net_device *dev = n->dev; 24310 struct net_device *dev = n->dev;
24521 int hatype = dev->type; 24311 int hatype = dev->type;
24522 24312
@@ -24524,7 +24314,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/arp.c linux-3.4.57-vs2.3.3.9/net/ipv
24524 read_lock(&n->lock); 24314 read_lock(&n->lock);
24525 /* Convert hardware address to XX:XX:XX:XX ... form. */ 24315 /* Convert hardware address to XX:XX:XX:XX ... form. */
24526 #if IS_ENABLED(CONFIG_AX25) 24316 #if IS_ENABLED(CONFIG_AX25)
24527@@ -1359,6 +1360,7 @@ static void arp_format_pneigh_entry(stru 24317@@ -1363,6 +1364,7 @@ static void arp_format_pneigh_entry(stru
24528 int hatype = dev ? dev->type : 0; 24318 int hatype = dev ? dev->type : 0;
24529 char tbuf[16]; 24319 char tbuf[16];
24530 24320
@@ -24532,10 +24322,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/arp.c linux-3.4.57-vs2.3.3.9/net/ipv
24532 sprintf(tbuf, "%pI4", n->key); 24322 sprintf(tbuf, "%pI4", n->key);
24533 seq_printf(seq, "%-16s 0x%-10x0x%-10x%s * %s\n", 24323 seq_printf(seq, "%-16s 0x%-10x0x%-10x%s * %s\n",
24534 tbuf, hatype, ATF_PUBL | ATF_PERM, "00:00:00:00:00:00", 24324 tbuf, hatype, ATF_PUBL | ATF_PERM, "00:00:00:00:00:00",
24535diff -NurpP --minimal linux-3.4.57/net/ipv4/devinet.c linux-3.4.57-vs2.3.3.9/net/ipv4/devinet.c 24325diff -NurpP --minimal linux-3.10.17/net/ipv4/devinet.c linux-3.10.17-vs2.3.6.6/net/ipv4/devinet.c
24536--- linux-3.4.57/net/ipv4/devinet.c 2012-05-21 16:07:40.000000000 +0000 24326--- linux-3.10.17/net/ipv4/devinet.c 2013-10-25 15:17:46.000000000 +0000
24537+++ linux-3.4.57-vs2.3.3.9/net/ipv4/devinet.c 2012-05-21 16:15:05.000000000 +0000 24327+++ linux-3.10.17-vs2.3.6.6/net/ipv4/devinet.c 2013-10-09 17:37:22.000000000 +0000
24538@@ -517,6 +517,7 @@ struct in_device *inetdev_by_index(struc 24328@@ -522,6 +522,7 @@ struct in_device *inetdev_by_index(struc
24539 } 24329 }
24540 EXPORT_SYMBOL(inetdev_by_index); 24330 EXPORT_SYMBOL(inetdev_by_index);
24541 24331
@@ -24543,7 +24333,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/devinet.c linux-3.4.57-vs2.3.3.9/net
24543 /* Called only from RTNL semaphored context. No locks. */ 24333 /* Called only from RTNL semaphored context. No locks. */
24544 24334
24545 struct in_ifaddr *inet_ifa_byprefix(struct in_device *in_dev, __be32 prefix, 24335 struct in_ifaddr *inet_ifa_byprefix(struct in_device *in_dev, __be32 prefix,
24546@@ -758,6 +759,8 @@ int devinet_ioctl(struct net *net, unsig 24336@@ -942,6 +943,8 @@ int devinet_ioctl(struct net *net, unsig
24547 24337
24548 in_dev = __in_dev_get_rtnl(dev); 24338 in_dev = __in_dev_get_rtnl(dev);
24549 if (in_dev) { 24339 if (in_dev) {
@@ -24552,7 +24342,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/devinet.c linux-3.4.57-vs2.3.3.9/net
24552 if (tryaddrmatch) { 24342 if (tryaddrmatch) {
24553 /* Matthias Andree */ 24343 /* Matthias Andree */
24554 /* compare label and address (4.4BSD style) */ 24344 /* compare label and address (4.4BSD style) */
24555@@ -766,6 +769,8 @@ int devinet_ioctl(struct net *net, unsig 24345@@ -950,6 +953,8 @@ int devinet_ioctl(struct net *net, unsig
24556 This is checked above. */ 24346 This is checked above. */
24557 for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL; 24347 for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL;
24558 ifap = &ifa->ifa_next) { 24348 ifap = &ifa->ifa_next) {
@@ -24561,7 +24351,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/devinet.c linux-3.4.57-vs2.3.3.9/net
24561 if (!strcmp(ifr.ifr_name, ifa->ifa_label) && 24351 if (!strcmp(ifr.ifr_name, ifa->ifa_label) &&
24562 sin_orig.sin_addr.s_addr == 24352 sin_orig.sin_addr.s_addr ==
24563 ifa->ifa_local) { 24353 ifa->ifa_local) {
24564@@ -778,9 +783,12 @@ int devinet_ioctl(struct net *net, unsig 24354@@ -962,9 +967,12 @@ int devinet_ioctl(struct net *net, unsig
24565 comparing just the label */ 24355 comparing just the label */
24566 if (!ifa) { 24356 if (!ifa) {
24567 for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL; 24357 for (ifap = &in_dev->ifa_list; (ifa = *ifap) != NULL;
@@ -24575,7 +24365,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/devinet.c linux-3.4.57-vs2.3.3.9/net
24575 } 24365 }
24576 } 24366 }
24577 24367
24578@@ -933,6 +941,8 @@ static int inet_gifconf(struct net_devic 24368@@ -1118,6 +1126,8 @@ static int inet_gifconf(struct net_devic
24579 goto out; 24369 goto out;
24580 24370
24581 for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) { 24371 for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) {
@@ -24584,15 +24374,15 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/devinet.c linux-3.4.57-vs2.3.3.9/net
24584 if (!buf) { 24374 if (!buf) {
24585 done += sizeof(ifr); 24375 done += sizeof(ifr);
24586 continue; 24376 continue;
24587@@ -1294,6 +1304,7 @@ static int inet_dump_ifaddr(struct sk_bu 24377@@ -1521,6 +1531,7 @@ static int inet_dump_ifaddr(struct sk_bu
24588 struct net_device *dev; 24378 struct net_device *dev;
24589 struct in_device *in_dev; 24379 struct in_device *in_dev;
24590 struct in_ifaddr *ifa; 24380 struct in_ifaddr *ifa;
24591+ struct sock *sk = skb->sk; 24381+ struct sock *sk = skb->sk;
24592 struct hlist_head *head; 24382 struct hlist_head *head;
24593 struct hlist_node *node;
24594 24383
24595@@ -1316,6 +1327,8 @@ static int inet_dump_ifaddr(struct sk_bu 24384 s_h = cb->args[0];
24385@@ -1544,6 +1555,8 @@ static int inet_dump_ifaddr(struct sk_bu
24596 24386
24597 for (ifa = in_dev->ifa_list, ip_idx = 0; ifa; 24387 for (ifa = in_dev->ifa_list, ip_idx = 0; ifa;
24598 ifa = ifa->ifa_next, ip_idx++) { 24388 ifa = ifa->ifa_next, ip_idx++) {
@@ -24601,10 +24391,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/devinet.c linux-3.4.57-vs2.3.3.9/net
24601 if (ip_idx < s_ip_idx) 24391 if (ip_idx < s_ip_idx)
24602 continue; 24392 continue;
24603 if (inet_fill_ifaddr(skb, ifa, 24393 if (inet_fill_ifaddr(skb, ifa,
24604diff -NurpP --minimal linux-3.4.57/net/ipv4/fib_trie.c linux-3.4.57-vs2.3.3.9/net/ipv4/fib_trie.c 24394diff -NurpP --minimal linux-3.10.17/net/ipv4/fib_trie.c linux-3.10.17-vs2.3.6.6/net/ipv4/fib_trie.c
24605--- linux-3.4.57/net/ipv4/fib_trie.c 2012-05-21 16:07:40.000000000 +0000 24395--- linux-3.10.17/net/ipv4/fib_trie.c 2013-10-25 15:17:46.000000000 +0000
24606+++ linux-3.4.57-vs2.3.3.9/net/ipv4/fib_trie.c 2012-05-21 16:15:05.000000000 +0000 24396+++ linux-3.10.17-vs2.3.6.6/net/ipv4/fib_trie.c 2013-10-09 17:37:22.000000000 +0000
24607@@ -2556,6 +2556,7 @@ static int fib_route_seq_show(struct seq 24397@@ -2536,6 +2536,7 @@ static int fib_route_seq_show(struct seq
24608 || fa->fa_type == RTN_MULTICAST) 24398 || fa->fa_type == RTN_MULTICAST)
24609 continue; 24399 continue;
24610 24400
@@ -24612,10 +24402,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/fib_trie.c linux-3.4.57-vs2.3.3.9/ne
24612 if (fi) 24402 if (fi)
24613 seq_printf(seq, 24403 seq_printf(seq,
24614 "%s\t%08X\t%08X\t%04X\t%d\t%u\t" 24404 "%s\t%08X\t%08X\t%04X\t%d\t%u\t"
24615diff -NurpP --minimal linux-3.4.57/net/ipv4/inet_connection_sock.c linux-3.4.57-vs2.3.3.9/net/ipv4/inet_connection_sock.c 24405diff -NurpP --minimal linux-3.10.17/net/ipv4/inet_connection_sock.c linux-3.10.17-vs2.3.6.6/net/ipv4/inet_connection_sock.c
24616--- linux-3.4.57/net/ipv4/inet_connection_sock.c 2013-08-13 14:13:44.000000000 +0000 24406--- linux-3.10.17/net/ipv4/inet_connection_sock.c 2013-07-14 17:01:37.000000000 +0000
24617+++ linux-3.4.57-vs2.3.3.9/net/ipv4/inet_connection_sock.c 2013-01-16 00:15:57.000000000 +0000 24407+++ linux-3.10.17-vs2.3.6.6/net/ipv4/inet_connection_sock.c 2013-08-22 20:30:00.000000000 +0000
24618@@ -52,6 +52,37 @@ void inet_get_local_port_range(int *low, 24408@@ -53,6 +53,37 @@ void inet_get_local_port_range(int *low,
24619 } 24409 }
24620 EXPORT_SYMBOL(inet_get_local_port_range); 24410 EXPORT_SYMBOL(inet_get_local_port_range);
24621 24411
@@ -24651,22 +24441,31 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/inet_connection_sock.c linux-3.4.57-
24651+} 24441+}
24652+ 24442+
24653 int inet_csk_bind_conflict(const struct sock *sk, 24443 int inet_csk_bind_conflict(const struct sock *sk,
24654 const struct inet_bind_bucket *tb) 24444 const struct inet_bind_bucket *tb, bool relax)
24655 { 24445 {
24656@@ -74,9 +105,7 @@ int inet_csk_bind_conflict(const struct 24446@@ -79,17 +110,12 @@ int inet_csk_bind_conflict(const struct
24657 sk->sk_bound_dev_if == sk2->sk_bound_dev_if)) { 24447 (!reuseport || !sk2->sk_reuseport ||
24658 if (!reuse || !sk2->sk_reuse || 24448 (sk2->sk_state != TCP_TIME_WAIT &&
24659 sk2->sk_state == TCP_LISTEN) { 24449 !uid_eq(uid, sock_i_uid(sk2))))) {
24660- const __be32 sk2_rcv_saddr = sk_rcv_saddr(sk2); 24450- const __be32 sk2_rcv_saddr = sk_rcv_saddr(sk2);
24661- if (!sk2_rcv_saddr || !sk_rcv_saddr(sk) || 24451- if (!sk2_rcv_saddr || !sk_rcv_saddr(sk) ||
24662- sk2_rcv_saddr == sk_rcv_saddr(sk)) 24452- sk2_rcv_saddr == sk_rcv_saddr(sk))
24663+ if (ipv4_rcv_saddr_equal(sk, sk2)) 24453+ if (ipv4_rcv_saddr_equal(sk, sk2))
24664 break; 24454 break;
24665 } 24455 }
24456 if (!relax && reuse && sk2->sk_reuse &&
24457 sk2->sk_state != TCP_LISTEN) {
24458- const __be32 sk2_rcv_saddr = sk_rcv_saddr(sk2);
24459-
24460- if (!sk2_rcv_saddr || !sk_rcv_saddr(sk) ||
24461- sk2_rcv_saddr == sk_rcv_saddr(sk))
24462+ if (ipv4_rcv_saddr_equal(sk, sk2))
24463 break;
24464 }
24666 } 24465 }
24667diff -NurpP --minimal linux-3.4.57/net/ipv4/inet_diag.c linux-3.4.57-vs2.3.3.9/net/ipv4/inet_diag.c 24466diff -NurpP --minimal linux-3.10.17/net/ipv4/inet_diag.c linux-3.10.17-vs2.3.6.6/net/ipv4/inet_diag.c
24668--- linux-3.4.57/net/ipv4/inet_diag.c 2013-08-13 14:13:44.000000000 +0000 24467--- linux-3.10.17/net/ipv4/inet_diag.c 2013-07-14 17:01:37.000000000 +0000
24669+++ linux-3.4.57-vs2.3.3.9/net/ipv4/inet_diag.c 2013-01-16 00:18:21.000000000 +0000 24468+++ linux-3.10.17-vs2.3.6.6/net/ipv4/inet_diag.c 2013-08-22 20:30:00.000000000 +0000
24670@@ -31,6 +31,8 @@ 24469@@ -31,6 +31,8 @@
24671 24470
24672 #include <linux/inet.h> 24471 #include <linux/inet.h>
@@ -24676,7 +24475,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/inet_diag.c linux-3.4.57-vs2.3.3.9/n
24676 24475
24677 #include <linux/inet_diag.h> 24476 #include <linux/inet_diag.h>
24678 #include <linux/sock_diag.h> 24477 #include <linux/sock_diag.h>
24679@@ -110,8 +112,10 @@ int inet_sk_diag_fill(struct sock *sk, s 24478@@ -106,8 +108,10 @@ int inet_sk_diag_fill(struct sock *sk, s
24680 24479
24681 r->id.idiag_sport = inet->inet_sport; 24480 r->id.idiag_sport = inet->inet_sport;
24682 r->id.idiag_dport = inet->inet_dport; 24481 r->id.idiag_dport = inet->inet_dport;
@@ -24687,9 +24486,9 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/inet_diag.c linux-3.4.57-vs2.3.3.9/n
24687+ r->id.idiag_dst[0] = nx_map_sock_lback(sk->sk_nx_info, 24486+ r->id.idiag_dst[0] = nx_map_sock_lback(sk->sk_nx_info,
24688+ inet->inet_daddr); 24487+ inet->inet_daddr);
24689 24488
24690 /* IPv6 dual-stack sockets use inet->tos for IPv4 connections, 24489 if (nla_put_u8(skb, INET_DIAG_SHUTDOWN, sk->sk_shutdown))
24691 * hence this needs to be included regardless of socket family. 24490 goto errout;
24692@@ -231,8 +235,8 @@ static int inet_twsk_diag_fill(struct in 24491@@ -244,8 +248,8 @@ static int inet_twsk_diag_fill(struct in
24693 sock_diag_save_cookie(tw, r->id.idiag_cookie); 24492 sock_diag_save_cookie(tw, r->id.idiag_cookie);
24694 r->id.idiag_sport = tw->tw_sport; 24493 r->id.idiag_sport = tw->tw_sport;
24695 r->id.idiag_dport = tw->tw_dport; 24494 r->id.idiag_dport = tw->tw_dport;
@@ -24700,22 +24499,22 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/inet_diag.c linux-3.4.57-vs2.3.3.9/n
24700 r->idiag_state = tw->tw_substate; 24499 r->idiag_state = tw->tw_substate;
24701 r->idiag_timer = 3; 24500 r->idiag_timer = 3;
24702 r->idiag_expires = DIV_ROUND_UP(tmo * 1000, HZ); 24501 r->idiag_expires = DIV_ROUND_UP(tmo * 1000, HZ);
24703@@ -276,12 +280,14 @@ int inet_diag_dump_one_icsk(struct inet_ 24502@@ -289,12 +293,14 @@ int inet_diag_dump_one_icsk(struct inet_
24704 24503
24705 err = -EINVAL; 24504 err = -EINVAL;
24706 if (req->sdiag_family == AF_INET) { 24505 if (req->sdiag_family == AF_INET) {
24707+ /* TODO: lback */ 24506+ /* TODO: lback */
24708 sk = inet_lookup(&init_net, hashinfo, req->id.idiag_dst[0], 24507 sk = inet_lookup(net, hashinfo, req->id.idiag_dst[0],
24709 req->id.idiag_dport, req->id.idiag_src[0], 24508 req->id.idiag_dport, req->id.idiag_src[0],
24710 req->id.idiag_sport, req->id.idiag_if); 24509 req->id.idiag_sport, req->id.idiag_if);
24711 } 24510 }
24712 #if IS_ENABLED(CONFIG_IPV6) 24511 #if IS_ENABLED(CONFIG_IPV6)
24713 else if (req->sdiag_family == AF_INET6) { 24512 else if (req->sdiag_family == AF_INET6) {
24714+ /* TODO: lback */ 24513+ /* TODO: lback */
24715 sk = inet6_lookup(&init_net, hashinfo, 24514 sk = inet6_lookup(net, hashinfo,
24716 (struct in6_addr *)req->id.idiag_dst, 24515 (struct in6_addr *)req->id.idiag_dst,
24717 req->id.idiag_dport, 24516 req->id.idiag_dport,
24718@@ -482,6 +488,7 @@ int inet_diag_bc_sk(const struct nlattr 24517@@ -496,6 +502,7 @@ int inet_diag_bc_sk(const struct nlattr
24719 } else 24518 } else
24720 #endif 24519 #endif
24721 { 24520 {
@@ -24723,7 +24522,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/inet_diag.c linux-3.4.57-vs2.3.3.9/n
24723 entry.saddr = &inet->inet_rcv_saddr; 24522 entry.saddr = &inet->inet_rcv_saddr;
24724 entry.daddr = &inet->inet_daddr; 24523 entry.daddr = &inet->inet_daddr;
24725 } 24524 }
24726@@ -639,6 +646,7 @@ static int inet_twsk_diag_dump(struct in 24525@@ -654,6 +661,7 @@ static int inet_twsk_diag_dump(struct in
24727 } else 24526 } else
24728 #endif 24527 #endif
24729 { 24528 {
@@ -24731,7 +24530,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/inet_diag.c linux-3.4.57-vs2.3.3.9/n
24731 entry.saddr = &tw->tw_rcv_saddr; 24530 entry.saddr = &tw->tw_rcv_saddr;
24732 entry.daddr = &tw->tw_daddr; 24531 entry.daddr = &tw->tw_daddr;
24733 } 24532 }
24734@@ -714,8 +722,8 @@ static int inet_diag_fill_req(struct sk_ 24533@@ -732,8 +740,8 @@ static int inet_diag_fill_req(struct sk_
24735 24534
24736 r->id.idiag_sport = inet->inet_sport; 24535 r->id.idiag_sport = inet->inet_sport;
24737 r->id.idiag_dport = ireq->rmt_port; 24536 r->id.idiag_dport = ireq->rmt_port;
@@ -24742,44 +24541,45 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/inet_diag.c linux-3.4.57-vs2.3.3.9/n
24742 r->idiag_expires = jiffies_to_msecs(tmo); 24541 r->idiag_expires = jiffies_to_msecs(tmo);
24743 r->idiag_rqueue = 0; 24542 r->idiag_rqueue = 0;
24744 r->idiag_wqueue = 0; 24543 r->idiag_wqueue = 0;
24745@@ -784,6 +792,7 @@ static int inet_diag_dump_reqs(struct sk 24544@@ -796,6 +804,7 @@ static int inet_diag_dump_reqs(struct sk
24545 r->id.idiag_dport)
24746 continue; 24546 continue;
24747 24547
24548+ /* TODO: lback */
24748 if (bc) { 24549 if (bc) {
24749+ /* TODO: lback */
24750 inet_diag_req_addrs(sk, req, &entry); 24550 inet_diag_req_addrs(sk, req, &entry);
24751 entry.dport = ntohs(ireq->rmt_port); 24551 entry.dport = ntohs(ireq->rmt_port);
24752 24552@@ -852,6 +861,8 @@ void inet_diag_dump_icsk(struct inet_has
24753@@ -834,6 +843,8 @@ void inet_diag_dump_icsk(struct inet_has 24553 if (!net_eq(sock_net(sk), net))
24754 sk_nulls_for_each(sk, node, &ilb->head) { 24554 continue;
24755 struct inet_sock *inet = inet_sk(sk);
24756 24555
24757+ if (!nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT)) 24556+ if (!nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT))
24758+ continue; 24557+ continue;
24759 if (num < s_num) { 24558 if (num < s_num) {
24760 num++; 24559 num++;
24761 continue; 24560 continue;
24762@@ -904,6 +915,8 @@ skip_listen_ht: 24561@@ -924,6 +935,8 @@ skip_listen_ht:
24763 sk_nulls_for_each(sk, node, &head->chain) {
24764 struct inet_sock *inet = inet_sk(sk);
24765 24562
24563 if (!net_eq(sock_net(sk), net))
24564 continue;
24766+ if (!nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT)) 24565+ if (!nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT))
24767+ continue; 24566+ continue;
24768 if (num < s_num) 24567 if (num < s_num)
24769 goto next_normal; 24568 goto next_normal;
24770 if (!(r->idiag_states & (1 << sk->sk_state))) 24569 if (!(r->idiag_states & (1 << sk->sk_state)))
24771@@ -931,6 +944,8 @@ next_normal: 24570@@ -952,7 +965,8 @@ next_normal:
24772 inet_twsk_for_each(tw, node,
24773 &head->twchain) { 24571 &head->twchain) {
24774 24572 if (!net_eq(twsk_net(tw), net))
24573 continue;
24574-
24775+ if (!nx_check(tw->tw_nid, VS_WATCH_P | VS_IDENT)) 24575+ if (!nx_check(tw->tw_nid, VS_WATCH_P | VS_IDENT))
24776+ continue; 24576+ continue;
24777 if (num < s_num) 24577 if (num < s_num)
24778 goto next_dying; 24578 goto next_dying;
24779 if (r->sdiag_family != AF_UNSPEC && 24579 if (r->sdiag_family != AF_UNSPEC &&
24780diff -NurpP --minimal linux-3.4.57/net/ipv4/inet_hashtables.c linux-3.4.57-vs2.3.3.9/net/ipv4/inet_hashtables.c 24580diff -NurpP --minimal linux-3.10.17/net/ipv4/inet_hashtables.c linux-3.10.17-vs2.3.6.6/net/ipv4/inet_hashtables.c
24781--- linux-3.4.57/net/ipv4/inet_hashtables.c 2011-10-24 16:45:34.000000000 +0000 24581--- linux-3.10.17/net/ipv4/inet_hashtables.c 2013-05-31 13:45:32.000000000 +0000
24782+++ linux-3.4.57-vs2.3.3.9/net/ipv4/inet_hashtables.c 2012-05-21 16:15:05.000000000 +0000 24582+++ linux-3.10.17-vs2.3.6.6/net/ipv4/inet_hashtables.c 2013-08-22 20:30:00.000000000 +0000
24783@@ -22,6 +22,7 @@ 24583@@ -22,6 +22,7 @@
24784 #include <net/inet_connection_sock.h> 24584 #include <net/inet_connection_sock.h>
24785 #include <net/inet_hashtables.h> 24585 #include <net/inet_hashtables.h>
@@ -24791,7 +24591,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/inet_hashtables.c linux-3.4.57-vs2.3
24791@@ -156,6 +157,11 @@ static inline int compute_score(struct s 24591@@ -156,6 +157,11 @@ static inline int compute_score(struct s
24792 if (rcv_saddr != daddr) 24592 if (rcv_saddr != daddr)
24793 return -1; 24593 return -1;
24794 score += 2; 24594 score += 4;
24795+ } else { 24595+ } else {
24796+ /* block non nx_info ips */ 24596+ /* block non nx_info ips */
24797+ if (!v4_addr_in_nx_info(sk->sk_nx_info, 24597+ if (!v4_addr_in_nx_info(sk->sk_nx_info,
@@ -24807,30 +24607,19 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/inet_hashtables.c linux-3.4.57-vs2.3
24807- 24607-
24808 struct sock *__inet_lookup_listener(struct net *net, 24608 struct sock *__inet_lookup_listener(struct net *net,
24809 struct inet_hashinfo *hashinfo, 24609 struct inet_hashinfo *hashinfo,
24810 const __be32 daddr, const unsigned short hnum, 24610 const __be32 saddr, __be16 sport,
24811@@ -196,6 +201,7 @@ begin: 24611@@ -209,6 +214,7 @@ begin:
24812 hiscore = score; 24612 phash = next_pseudo_random32(phash);
24813 } 24613 }
24814 } 24614 }
24815+ 24615+
24816 /* 24616 /*
24817 * if the nulls value we got at the end of this lookup is 24617 * if the nulls value we got at the end of this lookup is
24818 * not the expected one, we must restart lookup. 24618 * not the expected one, we must restart lookup.
24819diff -NurpP --minimal linux-3.4.57/net/ipv4/netfilter/nf_nat_helper.c linux-3.4.57-vs2.3.3.9/net/ipv4/netfilter/nf_nat_helper.c 24619diff -NurpP --minimal linux-3.10.17/net/ipv4/netfilter.c linux-3.10.17-vs2.3.6.6/net/ipv4/netfilter.c
24820--- linux-3.4.57/net/ipv4/netfilter/nf_nat_helper.c 2012-03-19 18:47:33.000000000 +0000 24620--- linux-3.10.17/net/ipv4/netfilter.c 2013-07-14 17:01:37.000000000 +0000
24821+++ linux-3.4.57-vs2.3.3.9/net/ipv4/netfilter/nf_nat_helper.c 2012-05-21 16:15:05.000000000 +0000 24621+++ linux-3.10.17-vs2.3.6.6/net/ipv4/netfilter.c 2013-08-22 20:30:00.000000000 +0000
24822@@ -20,6 +20,7 @@ 24622@@ -11,7 +11,7 @@
24823 #include <net/route.h>
24824
24825 #include <linux/netfilter_ipv4.h>
24826+#include <net/route.h>
24827 #include <net/netfilter/nf_conntrack.h>
24828 #include <net/netfilter/nf_conntrack_helper.h>
24829 #include <net/netfilter/nf_conntrack_ecache.h>
24830diff -NurpP --minimal linux-3.4.57/net/ipv4/netfilter.c linux-3.4.57-vs2.3.3.9/net/ipv4/netfilter.c
24831--- linux-3.4.57/net/ipv4/netfilter.c 2012-01-09 15:15:03.000000000 +0000
24832+++ linux-3.4.57-vs2.3.3.9/net/ipv4/netfilter.c 2012-05-21 16:15:05.000000000 +0000
24833@@ -6,7 +6,7 @@
24834 #include <linux/skbuff.h> 24623 #include <linux/skbuff.h>
24835 #include <linux/gfp.h> 24624 #include <linux/gfp.h>
24836 #include <linux/export.h> 24625 #include <linux/export.h>
@@ -24839,10 +24628,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/netfilter.c linux-3.4.57-vs2.3.3.9/n
24839 #include <net/xfrm.h> 24628 #include <net/xfrm.h>
24840 #include <net/ip.h> 24629 #include <net/ip.h>
24841 #include <net/netfilter/nf_queue.h> 24630 #include <net/netfilter/nf_queue.h>
24842diff -NurpP --minimal linux-3.4.57/net/ipv4/raw.c linux-3.4.57-vs2.3.3.9/net/ipv4/raw.c 24631diff -NurpP --minimal linux-3.10.17/net/ipv4/raw.c linux-3.10.17-vs2.3.6.6/net/ipv4/raw.c
24843--- linux-3.4.57/net/ipv4/raw.c 2013-08-13 14:13:44.000000000 +0000 24632--- linux-3.10.17/net/ipv4/raw.c 2013-10-25 15:17:46.000000000 +0000
24844+++ linux-3.4.57-vs2.3.3.9/net/ipv4/raw.c 2012-10-22 13:09:53.000000000 +0000 24633+++ linux-3.10.17-vs2.3.6.6/net/ipv4/raw.c 2013-10-26 18:03:17.000000000 +0000
24845@@ -118,7 +118,7 @@ static struct sock *__raw_v4_lookup(stru 24634@@ -116,7 +116,7 @@ static struct sock *__raw_v4_lookup(stru
24846 24635
24847 if (net_eq(sock_net(sk), net) && inet->inet_num == num && 24636 if (net_eq(sock_net(sk), net) && inet->inet_num == num &&
24848 !(inet->inet_daddr && inet->inet_daddr != raddr) && 24637 !(inet->inet_daddr && inet->inet_daddr != raddr) &&
@@ -24851,7 +24640,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/raw.c linux-3.4.57-vs2.3.3.9/net/ipv
24851 !(sk->sk_bound_dev_if && sk->sk_bound_dev_if != dif)) 24640 !(sk->sk_bound_dev_if && sk->sk_bound_dev_if != dif))
24852 goto found; /* gotcha */ 24641 goto found; /* gotcha */
24853 } 24642 }
24854@@ -392,6 +392,12 @@ static int raw_send_hdrinc(struct sock * 24643@@ -395,6 +395,12 @@ static int raw_send_hdrinc(struct sock *
24855 icmp_out_count(net, ((struct icmphdr *) 24644 icmp_out_count(net, ((struct icmphdr *)
24856 skb_transport_header(skb))->type); 24645 skb_transport_header(skb))->type);
24857 24646
@@ -24864,7 +24653,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/raw.c linux-3.4.57-vs2.3.3.9/net/ipv
24864 err = NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_OUT, skb, NULL, 24653 err = NF_HOOK(NFPROTO_IPV4, NF_INET_LOCAL_OUT, skb, NULL,
24865 rt->dst.dev, dst_output); 24654 rt->dst.dev, dst_output);
24866 if (err > 0) 24655 if (err > 0)
24867@@ -577,6 +583,16 @@ static int raw_sendmsg(struct kiocb *ioc 24656@@ -581,6 +587,16 @@ static int raw_sendmsg(struct kiocb *ioc
24868 goto done; 24657 goto done;
24869 } 24658 }
24870 24659
@@ -24881,7 +24670,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/raw.c linux-3.4.57-vs2.3.3.9/net/ipv
24881 security_sk_classify_flow(sk, flowi4_to_flowi(&fl4)); 24670 security_sk_classify_flow(sk, flowi4_to_flowi(&fl4));
24882 rt = ip_route_output_flow(sock_net(sk), &fl4, sk); 24671 rt = ip_route_output_flow(sock_net(sk), &fl4, sk);
24883 if (IS_ERR(rt)) { 24672 if (IS_ERR(rt)) {
24884@@ -653,17 +669,19 @@ static int raw_bind(struct sock *sk, str 24673@@ -657,17 +673,19 @@ static int raw_bind(struct sock *sk, str
24885 { 24674 {
24886 struct inet_sock *inet = inet_sk(sk); 24675 struct inet_sock *inet = inet_sk(sk);
24887 struct sockaddr_in *addr = (struct sockaddr_in *) uaddr; 24676 struct sockaddr_in *addr = (struct sockaddr_in *) uaddr;
@@ -24904,7 +24693,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/raw.c linux-3.4.57-vs2.3.3.9/net/ipv
24904 if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST) 24693 if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST)
24905 inet->inet_saddr = 0; /* Use device */ 24694 inet->inet_saddr = 0; /* Use device */
24906 sk_dst_reset(sk); 24695 sk_dst_reset(sk);
24907@@ -715,7 +733,8 @@ static int raw_recvmsg(struct kiocb *ioc 24696@@ -719,7 +737,8 @@ static int raw_recvmsg(struct kiocb *ioc
24908 /* Copy the address. */ 24697 /* Copy the address. */
24909 if (sin) { 24698 if (sin) {
24910 sin->sin_family = AF_INET; 24699 sin->sin_family = AF_INET;
@@ -24914,17 +24703,17 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/raw.c linux-3.4.57-vs2.3.3.9/net/ipv
24914 sin->sin_port = 0; 24703 sin->sin_port = 0;
24915 memset(&sin->sin_zero, 0, sizeof(sin->sin_zero)); 24704 memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
24916 } 24705 }
24917@@ -911,7 +930,8 @@ static struct sock *raw_get_first(struct 24706@@ -914,7 +933,8 @@ static struct sock *raw_get_first(struct
24918 struct hlist_node *node; 24707 for (state->bucket = 0; state->bucket < RAW_HTABLE_SIZE;
24919 24708 ++state->bucket) {
24920 sk_for_each(sk, node, &state->h->ht[state->bucket]) 24709 sk_for_each(sk, &state->h->ht[state->bucket])
24921- if (sock_net(sk) == seq_file_net(seq)) 24710- if (sock_net(sk) == seq_file_net(seq))
24922+ if ((sock_net(sk) == seq_file_net(seq)) && 24711+ if ((sock_net(sk) == seq_file_net(seq)) &&
24923+ nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT)) 24712+ nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT))
24924 goto found; 24713 goto found;
24925 } 24714 }
24926 sk = NULL; 24715 sk = NULL;
24927@@ -927,7 +947,8 @@ static struct sock *raw_get_next(struct 24716@@ -930,7 +950,8 @@ static struct sock *raw_get_next(struct
24928 sk = sk_next(sk); 24717 sk = sk_next(sk);
24929 try_again: 24718 try_again:
24930 ; 24719 ;
@@ -24934,10 +24723,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/raw.c linux-3.4.57-vs2.3.3.9/net/ipv
24934 24723
24935 if (!sk && ++state->bucket < RAW_HTABLE_SIZE) { 24724 if (!sk && ++state->bucket < RAW_HTABLE_SIZE) {
24936 sk = sk_head(&state->h->ht[state->bucket]); 24725 sk = sk_head(&state->h->ht[state->bucket]);
24937diff -NurpP --minimal linux-3.4.57/net/ipv4/route.c linux-3.4.57-vs2.3.3.9/net/ipv4/route.c 24726diff -NurpP --minimal linux-3.10.17/net/ipv4/route.c linux-3.10.17-vs2.3.6.6/net/ipv4/route.c
24938--- linux-3.4.57/net/ipv4/route.c 2012-05-21 16:07:40.000000000 +0000 24727--- linux-3.10.17/net/ipv4/route.c 2013-07-14 17:01:37.000000000 +0000
24939+++ linux-3.4.57-vs2.3.3.9/net/ipv4/route.c 2012-05-21 16:15:05.000000000 +0000 24728+++ linux-3.10.17-vs2.3.6.6/net/ipv4/route.c 2013-08-22 20:30:00.000000000 +0000
24940@@ -2696,7 +2696,7 @@ static struct rtable *ip_route_output_sl 24729@@ -2003,7 +2003,7 @@ struct rtable *__ip_route_output_key(str
24941 24730
24942 24731
24943 if (fl4->flowi4_oif) { 24732 if (fl4->flowi4_oif) {
@@ -24946,9 +24735,9 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/route.c linux-3.4.57-vs2.3.3.9/net/i
24946 rth = ERR_PTR(-ENODEV); 24735 rth = ERR_PTR(-ENODEV);
24947 if (dev_out == NULL) 24736 if (dev_out == NULL)
24948 goto out; 24737 goto out;
24949diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp.c linux-3.4.57-vs2.3.3.9/net/ipv4/tcp.c 24738diff -NurpP --minimal linux-3.10.17/net/ipv4/tcp.c linux-3.10.17-vs2.3.6.6/net/ipv4/tcp.c
24950--- linux-3.4.57/net/ipv4/tcp.c 2013-08-13 14:13:45.000000000 +0000 24739--- linux-3.10.17/net/ipv4/tcp.c 2013-10-25 15:17:46.000000000 +0000
24951+++ linux-3.4.57-vs2.3.3.9/net/ipv4/tcp.c 2013-07-14 13:38:37.000000000 +0000 24740+++ linux-3.10.17-vs2.3.6.6/net/ipv4/tcp.c 2013-10-26 18:03:17.000000000 +0000
24952@@ -268,6 +268,7 @@ 24741@@ -268,6 +268,7 @@
24953 #include <linux/crypto.h> 24742 #include <linux/crypto.h>
24954 #include <linux/time.h> 24743 #include <linux/time.h>
@@ -24956,11 +24745,11 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp.c linux-3.4.57-vs2.3.3.9/net/ipv
24956+#include <linux/in.h> 24745+#include <linux/in.h>
24957 24746
24958 #include <net/icmp.h> 24747 #include <net/icmp.h>
24959 #include <net/tcp.h> 24748 #include <net/inet_common.h>
24960diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp_ipv4.c linux-3.4.57-vs2.3.3.9/net/ipv4/tcp_ipv4.c 24749diff -NurpP --minimal linux-3.10.17/net/ipv4/tcp_ipv4.c linux-3.10.17-vs2.3.6.6/net/ipv4/tcp_ipv4.c
24961--- linux-3.4.57/net/ipv4/tcp_ipv4.c 2013-08-13 14:13:45.000000000 +0000 24750--- linux-3.10.17/net/ipv4/tcp_ipv4.c 2013-07-14 17:01:37.000000000 +0000
24962+++ linux-3.4.57-vs2.3.3.9/net/ipv4/tcp_ipv4.c 2013-08-13 17:07:37.000000000 +0000 24751+++ linux-3.10.17-vs2.3.6.6/net/ipv4/tcp_ipv4.c 2013-08-22 20:30:00.000000000 +0000
24963@@ -2037,6 +2037,12 @@ static void *listening_get_next(struct s 24752@@ -2263,6 +2263,12 @@ static void *listening_get_next(struct s
24964 req = req->dl_next; 24753 req = req->dl_next;
24965 while (1) { 24754 while (1) {
24966 while (req) { 24755 while (req) {
@@ -24973,7 +24762,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp_ipv4.c linux-3.4.57-vs2.3.3.9/ne
24973 if (req->rsk_ops->family == st->family) { 24762 if (req->rsk_ops->family == st->family) {
24974 cur = req; 24763 cur = req;
24975 goto out; 24764 goto out;
24976@@ -2061,6 +2067,10 @@ get_req: 24765@@ -2287,6 +2293,10 @@ get_req:
24977 } 24766 }
24978 get_sk: 24767 get_sk:
24979 sk_nulls_for_each_from(sk, node) { 24768 sk_nulls_for_each_from(sk, node) {
@@ -24984,7 +24773,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp_ipv4.c linux-3.4.57-vs2.3.3.9/ne
24984 if (!net_eq(sock_net(sk), net)) 24773 if (!net_eq(sock_net(sk), net))
24985 continue; 24774 continue;
24986 if (sk->sk_family == st->family) { 24775 if (sk->sk_family == st->family) {
24987@@ -2137,6 +2147,11 @@ static void *established_get_first(struc 24776@@ -2363,6 +2373,11 @@ static void *established_get_first(struc
24988 24777
24989 spin_lock_bh(lock); 24778 spin_lock_bh(lock);
24990 sk_nulls_for_each(sk, node, &tcp_hashinfo.ehash[st->bucket].chain) { 24779 sk_nulls_for_each(sk, node, &tcp_hashinfo.ehash[st->bucket].chain) {
@@ -24996,7 +24785,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp_ipv4.c linux-3.4.57-vs2.3.3.9/ne
24996 if (sk->sk_family != st->family || 24785 if (sk->sk_family != st->family ||
24997 !net_eq(sock_net(sk), net)) { 24786 !net_eq(sock_net(sk), net)) {
24998 continue; 24787 continue;
24999@@ -2147,6 +2162,11 @@ static void *established_get_first(struc 24788@@ -2373,6 +2388,11 @@ static void *established_get_first(struc
25000 st->state = TCP_SEQ_STATE_TIME_WAIT; 24789 st->state = TCP_SEQ_STATE_TIME_WAIT;
25001 inet_twsk_for_each(tw, node, 24790 inet_twsk_for_each(tw, node,
25002 &tcp_hashinfo.ehash[st->bucket].twchain) { 24791 &tcp_hashinfo.ehash[st->bucket].twchain) {
@@ -25008,7 +24797,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp_ipv4.c linux-3.4.57-vs2.3.3.9/ne
25008 if (tw->tw_family != st->family || 24797 if (tw->tw_family != st->family ||
25009 !net_eq(twsk_net(tw), net)) { 24798 !net_eq(twsk_net(tw), net)) {
25010 continue; 24799 continue;
25011@@ -2176,7 +2196,9 @@ static void *established_get_next(struct 24800@@ -2402,7 +2422,9 @@ static void *established_get_next(struct
25012 tw = cur; 24801 tw = cur;
25013 tw = tw_next(tw); 24802 tw = tw_next(tw);
25014 get_tw: 24803 get_tw:
@@ -25019,7 +24808,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp_ipv4.c linux-3.4.57-vs2.3.3.9/ne
25019 tw = tw_next(tw); 24808 tw = tw_next(tw);
25020 } 24809 }
25021 if (tw) { 24810 if (tw) {
25022@@ -2200,6 +2222,11 @@ get_tw: 24811@@ -2426,6 +2448,11 @@ get_tw:
25023 sk = sk_nulls_next(sk); 24812 sk = sk_nulls_next(sk);
25024 24813
25025 sk_nulls_for_each_from(sk, node) { 24814 sk_nulls_for_each_from(sk, node) {
@@ -25031,7 +24820,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp_ipv4.c linux-3.4.57-vs2.3.3.9/ne
25031 if (sk->sk_family == st->family && net_eq(sock_net(sk), net)) 24820 if (sk->sk_family == st->family && net_eq(sock_net(sk), net))
25032 goto found; 24821 goto found;
25033 } 24822 }
25034@@ -2405,9 +2432,9 @@ static void get_openreq4(const struct so 24823@@ -2631,9 +2658,9 @@ static void get_openreq4(const struct so
25035 seq_printf(f, "%4d: %08X:%04X %08X:%04X" 24824 seq_printf(f, "%4d: %08X:%04X %08X:%04X"
25036 " %02X %08X:%08X %02X:%08lX %08X %5d %8d %u %d %pK%n", 24825 " %02X %08X:%08X %02X:%08lX %08X %5d %8d %u %d %pK%n",
25037 i, 24826 i,
@@ -25043,10 +24832,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp_ipv4.c linux-3.4.57-vs2.3.3.9/ne
25043 ntohs(ireq->rmt_port), 24832 ntohs(ireq->rmt_port),
25044 TCP_SYN_RECV, 24833 TCP_SYN_RECV,
25045 0, 0, /* could print option size, but that is af dependent. */ 24834 0, 0, /* could print option size, but that is af dependent. */
25046@@ -2429,8 +2456,8 @@ static void get_tcp4_sock(struct sock *s 24835@@ -2656,8 +2683,8 @@ static void get_tcp4_sock(struct sock *s
25047 const struct tcp_sock *tp = tcp_sk(sk);
25048 const struct inet_connection_sock *icsk = inet_csk(sk); 24836 const struct inet_connection_sock *icsk = inet_csk(sk);
25049 const struct inet_sock *inet = inet_sk(sk); 24837 const struct inet_sock *inet = inet_sk(sk);
24838 struct fastopen_queue *fastopenq = icsk->icsk_accept_queue.fastopenq;
25050- __be32 dest = inet->inet_daddr; 24839- __be32 dest = inet->inet_daddr;
25051- __be32 src = inet->inet_rcv_saddr; 24840- __be32 src = inet->inet_rcv_saddr;
25052+ __be32 dest = nx_map_sock_lback(current_nx_info(), inet->inet_daddr); 24841+ __be32 dest = nx_map_sock_lback(current_nx_info(), inet->inet_daddr);
@@ -25054,9 +24843,9 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp_ipv4.c linux-3.4.57-vs2.3.3.9/ne
25054 __u16 destp = ntohs(inet->inet_dport); 24843 __u16 destp = ntohs(inet->inet_dport);
25055 __u16 srcp = ntohs(inet->inet_sport); 24844 __u16 srcp = ntohs(inet->inet_sport);
25056 int rx_queue; 24845 int rx_queue;
25057@@ -2487,8 +2514,8 @@ static void get_timewait4_sock(const str 24846@@ -2715,8 +2742,8 @@ static void get_timewait4_sock(const str
25058 if (ttd < 0) 24847 __u16 destp, srcp;
25059 ttd = 0; 24848 long delta = tw->tw_ttd - jiffies;
25060 24849
25061- dest = tw->tw_daddr; 24850- dest = tw->tw_daddr;
25062- src = tw->tw_rcv_saddr; 24851- src = tw->tw_rcv_saddr;
@@ -25065,9 +24854,9 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp_ipv4.c linux-3.4.57-vs2.3.3.9/ne
25065 destp = ntohs(tw->tw_dport); 24854 destp = ntohs(tw->tw_dport);
25066 srcp = ntohs(tw->tw_sport); 24855 srcp = ntohs(tw->tw_sport);
25067 24856
25068diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp_minisocks.c linux-3.4.57-vs2.3.3.9/net/ipv4/tcp_minisocks.c 24857diff -NurpP --minimal linux-3.10.17/net/ipv4/tcp_minisocks.c linux-3.10.17-vs2.3.6.6/net/ipv4/tcp_minisocks.c
25069--- linux-3.4.57/net/ipv4/tcp_minisocks.c 2012-05-21 16:07:40.000000000 +0000 24858--- linux-3.10.17/net/ipv4/tcp_minisocks.c 2013-07-14 17:01:37.000000000 +0000
25070+++ linux-3.4.57-vs2.3.3.9/net/ipv4/tcp_minisocks.c 2012-05-21 16:15:05.000000000 +0000 24859+++ linux-3.10.17-vs2.3.6.6/net/ipv4/tcp_minisocks.c 2013-08-22 20:30:00.000000000 +0000
25071@@ -23,6 +23,9 @@ 24860@@ -23,6 +23,9 @@
25072 #include <linux/slab.h> 24861 #include <linux/slab.h>
25073 #include <linux/sysctl.h> 24862 #include <linux/sysctl.h>
@@ -25078,9 +24867,9 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp_minisocks.c linux-3.4.57-vs2.3.3
25078 #include <net/tcp.h> 24867 #include <net/tcp.h>
25079 #include <net/inet_common.h> 24868 #include <net/inet_common.h>
25080 #include <net/xfrm.h> 24869 #include <net/xfrm.h>
25081@@ -336,6 +339,11 @@ void tcp_time_wait(struct sock *sk, int 24870@@ -290,6 +293,11 @@ void tcp_time_wait(struct sock *sk, int
25082 tcptw->tw_ts_recent = tp->rx_opt.ts_recent;
25083 tcptw->tw_ts_recent_stamp = tp->rx_opt.ts_recent_stamp; 24871 tcptw->tw_ts_recent_stamp = tp->rx_opt.ts_recent_stamp;
24872 tcptw->tw_ts_offset = tp->tsoffset;
25084 24873
25085+ tw->tw_xid = sk->sk_xid; 24874+ tw->tw_xid = sk->sk_xid;
25086+ tw->tw_vx_info = NULL; 24875+ tw->tw_vx_info = NULL;
@@ -25090,10 +24879,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/tcp_minisocks.c linux-3.4.57-vs2.3.3
25090 #if IS_ENABLED(CONFIG_IPV6) 24879 #if IS_ENABLED(CONFIG_IPV6)
25091 if (tw->tw_family == PF_INET6) { 24880 if (tw->tw_family == PF_INET6) {
25092 struct ipv6_pinfo *np = inet6_sk(sk); 24881 struct ipv6_pinfo *np = inet6_sk(sk);
25093diff -NurpP --minimal linux-3.4.57/net/ipv4/udp.c linux-3.4.57-vs2.3.3.9/net/ipv4/udp.c 24882diff -NurpP --minimal linux-3.10.17/net/ipv4/udp.c linux-3.10.17-vs2.3.6.6/net/ipv4/udp.c
25094--- linux-3.4.57/net/ipv4/udp.c 2013-08-13 14:13:45.000000000 +0000 24883--- linux-3.10.17/net/ipv4/udp.c 2013-10-25 15:17:46.000000000 +0000
25095+++ linux-3.4.57-vs2.3.3.9/net/ipv4/udp.c 2013-08-13 17:07:37.000000000 +0000 24884+++ linux-3.10.17-vs2.3.6.6/net/ipv4/udp.c 2013-08-22 20:30:00.000000000 +0000
25096@@ -298,14 +298,7 @@ fail: 24885@@ -306,14 +306,7 @@ fail:
25097 } 24886 }
25098 EXPORT_SYMBOL(udp_lib_get_port); 24887 EXPORT_SYMBOL(udp_lib_get_port);
25099 24888
@@ -25109,10 +24898,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25109 24898
25110 static unsigned int udp4_portaddr_hash(struct net *net, __be32 saddr, 24899 static unsigned int udp4_portaddr_hash(struct net *net, __be32 saddr,
25111 unsigned int port) 24900 unsigned int port)
25112@@ -340,6 +333,11 @@ static inline int compute_score(struct s 24901@@ -348,6 +341,11 @@ static inline int compute_score(struct s
25113 if (inet->inet_rcv_saddr != daddr) 24902 if (inet->inet_rcv_saddr != daddr)
25114 return -1; 24903 return -1;
25115 score += 2; 24904 score += 4;
25116+ } else { 24905+ } else {
25117+ /* block non nx_info ips */ 24906+ /* block non nx_info ips */
25118+ if (!v4_addr_in_nx_info(sk->sk_nx_info, 24907+ if (!v4_addr_in_nx_info(sk->sk_nx_info,
@@ -25121,7 +24910,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25121 } 24910 }
25122 if (inet->inet_daddr) { 24911 if (inet->inet_daddr) {
25123 if (inet->inet_daddr != saddr) 24912 if (inet->inet_daddr != saddr)
25124@@ -443,6 +441,7 @@ exact_match: 24913@@ -458,6 +456,7 @@ begin:
25125 return result; 24914 return result;
25126 } 24915 }
25127 24916
@@ -25129,7 +24918,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25129 /* UDP is nearly always wildcards out the wazoo, it makes no sense to try 24918 /* UDP is nearly always wildcards out the wazoo, it makes no sense to try
25130 * harder than this. -DaveM 24919 * harder than this. -DaveM
25131 */ 24920 */
25132@@ -488,6 +487,11 @@ begin: 24921@@ -504,6 +503,11 @@ begin:
25133 sk_nulls_for_each_rcu(sk, node, &hslot->head) { 24922 sk_nulls_for_each_rcu(sk, node, &hslot->head) {
25134 score = compute_score(sk, net, saddr, hnum, sport, 24923 score = compute_score(sk, net, saddr, hnum, sport,
25135 daddr, dport, dif); 24924 daddr, dport, dif);
@@ -25141,7 +24930,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25141 if (score > badness) { 24930 if (score > badness) {
25142 result = sk; 24931 result = sk;
25143 badness = score; 24932 badness = score;
25144@@ -501,6 +505,7 @@ begin: 24933@@ -528,6 +532,7 @@ begin:
25145 if (get_nulls_value(node) != slot) 24934 if (get_nulls_value(node) != slot)
25146 goto begin; 24935 goto begin;
25147 24936
@@ -25149,7 +24938,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25149 if (result) { 24938 if (result) {
25150 if (unlikely(!atomic_inc_not_zero_hint(&result->sk_refcnt, 2))) 24939 if (unlikely(!atomic_inc_not_zero_hint(&result->sk_refcnt, 2)))
25151 result = NULL; 24940 result = NULL;
25152@@ -510,6 +515,7 @@ begin: 24941@@ -537,6 +542,7 @@ begin:
25153 goto begin; 24942 goto begin;
25154 } 24943 }
25155 } 24944 }
@@ -25157,7 +24946,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25157 rcu_read_unlock(); 24946 rcu_read_unlock();
25158 return result; 24947 return result;
25159 } 24948 }
25160@@ -553,8 +559,7 @@ static inline struct sock *udp_v4_mcast_ 24949@@ -580,8 +586,7 @@ static inline struct sock *udp_v4_mcast_
25161 udp_sk(s)->udp_port_hash != hnum || 24950 udp_sk(s)->udp_port_hash != hnum ||
25162 (inet->inet_daddr && inet->inet_daddr != rmt_addr) || 24951 (inet->inet_daddr && inet->inet_daddr != rmt_addr) ||
25163 (inet->inet_dport != rmt_port && inet->inet_dport) || 24952 (inet->inet_dport != rmt_port && inet->inet_dport) ||
@@ -25167,7 +24956,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25167 ipv6_only_sock(s) || 24956 ipv6_only_sock(s) ||
25168 (s->sk_bound_dev_if && s->sk_bound_dev_if != dif)) 24957 (s->sk_bound_dev_if && s->sk_bound_dev_if != dif))
25169 continue; 24958 continue;
25170@@ -934,6 +939,16 @@ int udp_sendmsg(struct kiocb *iocb, stru 24959@@ -965,6 +970,16 @@ int udp_sendmsg(struct kiocb *iocb, stru
25171 inet_sk_flowi_flags(sk)|FLOWI_FLAG_CAN_SLEEP, 24960 inet_sk_flowi_flags(sk)|FLOWI_FLAG_CAN_SLEEP,
25172 faddr, saddr, dport, inet->inet_sport); 24961 faddr, saddr, dport, inet->inet_sport);
25173 24962
@@ -25184,7 +24973,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25184 security_sk_classify_flow(sk, flowi4_to_flowi(fl4)); 24973 security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
25185 rt = ip_route_output_flow(net, fl4, sk); 24974 rt = ip_route_output_flow(net, fl4, sk);
25186 if (IS_ERR(rt)) { 24975 if (IS_ERR(rt)) {
25187@@ -1232,7 +1247,8 @@ try_again: 24976@@ -1272,7 +1287,8 @@ try_again:
25188 if (sin) { 24977 if (sin) {
25189 sin->sin_family = AF_INET; 24978 sin->sin_family = AF_INET;
25190 sin->sin_port = udp_hdr(skb)->source; 24979 sin->sin_port = udp_hdr(skb)->source;
@@ -25194,7 +24983,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25194 memset(sin->sin_zero, 0, sizeof(sin->sin_zero)); 24983 memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
25195 } 24984 }
25196 if (inet->cmsg_flags) 24985 if (inet->cmsg_flags)
25197@@ -1971,6 +1987,8 @@ static struct sock *udp_get_first(struct 24986@@ -2033,6 +2049,8 @@ static struct sock *udp_get_first(struct
25198 sk_nulls_for_each(sk, node, &hslot->head) { 24987 sk_nulls_for_each(sk, node, &hslot->head) {
25199 if (!net_eq(sock_net(sk), net)) 24988 if (!net_eq(sock_net(sk), net))
25200 continue; 24989 continue;
@@ -25203,7 +24992,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25203 if (sk->sk_family == state->family) 24992 if (sk->sk_family == state->family)
25204 goto found; 24993 goto found;
25205 } 24994 }
25206@@ -1988,7 +2006,9 @@ static struct sock *udp_get_next(struct 24995@@ -2050,7 +2068,9 @@ static struct sock *udp_get_next(struct
25207 24996
25208 do { 24997 do {
25209 sk = sk_nulls_next(sk); 24998 sk = sk_nulls_next(sk);
@@ -25214,7 +25003,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25214 25003
25215 if (!sk) { 25004 if (!sk) {
25216 if (state->bucket <= state->udp_table->mask) 25005 if (state->bucket <= state->udp_table->mask)
25217@@ -2084,8 +2104,8 @@ static void udp4_format_sock(struct sock 25006@@ -2146,8 +2166,8 @@ static void udp4_format_sock(struct sock
25218 int bucket, int *len) 25007 int bucket, int *len)
25219 { 25008 {
25220 struct inet_sock *inet = inet_sk(sp); 25009 struct inet_sock *inet = inet_sk(sp);
@@ -25225,9 +25014,9 @@ diff -NurpP --minimal linux-3.4.57/net/ipv4/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25225 __u16 destp = ntohs(inet->inet_dport); 25014 __u16 destp = ntohs(inet->inet_dport);
25226 __u16 srcp = ntohs(inet->inet_sport); 25015 __u16 srcp = ntohs(inet->inet_sport);
25227 25016
25228diff -NurpP --minimal linux-3.4.57/net/ipv6/Kconfig linux-3.4.57-vs2.3.3.9/net/ipv6/Kconfig 25017diff -NurpP --minimal linux-3.10.17/net/ipv6/Kconfig linux-3.10.17-vs2.3.6.6/net/ipv6/Kconfig
25229--- linux-3.4.57/net/ipv6/Kconfig 2010-08-02 14:52:59.000000000 +0000 25018--- linux-3.10.17/net/ipv6/Kconfig 2013-07-14 17:01:38.000000000 +0000
25230+++ linux-3.4.57-vs2.3.3.9/net/ipv6/Kconfig 2012-05-21 16:15:05.000000000 +0000 25019+++ linux-3.10.17-vs2.3.6.6/net/ipv6/Kconfig 2013-08-22 20:30:00.000000000 +0000
25231@@ -4,8 +4,8 @@ 25020@@ -4,8 +4,8 @@
25232 25021
25233 # IPv6 as module will cause a CRASH if you try to unload it 25022 # IPv6 as module will cause a CRASH if you try to unload it
@@ -25239,10 +25028,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/Kconfig linux-3.4.57-vs2.3.3.9/net/i
25239 ---help--- 25028 ---help---
25240 This is complemental support for the IP version 6. 25029 This is complemental support for the IP version 6.
25241 You will still be able to do traditional IPv4 networking as well. 25030 You will still be able to do traditional IPv4 networking as well.
25242diff -NurpP --minimal linux-3.4.57/net/ipv6/addrconf.c linux-3.4.57-vs2.3.3.9/net/ipv6/addrconf.c 25031diff -NurpP --minimal linux-3.10.17/net/ipv6/addrconf.c linux-3.10.17-vs2.3.6.6/net/ipv6/addrconf.c
25243--- linux-3.4.57/net/ipv6/addrconf.c 2013-08-13 14:13:45.000000000 +0000 25032--- linux-3.10.17/net/ipv6/addrconf.c 2013-10-25 15:17:46.000000000 +0000
25244+++ linux-3.4.57-vs2.3.3.9/net/ipv6/addrconf.c 2013-08-13 17:07:37.000000000 +0000 25033+++ linux-3.10.17-vs2.3.6.6/net/ipv6/addrconf.c 2013-10-26 18:03:17.000000000 +0000
25245@@ -88,6 +88,8 @@ 25034@@ -94,6 +94,8 @@
25246 #include <linux/proc_fs.h> 25035 #include <linux/proc_fs.h>
25247 #include <linux/seq_file.h> 25036 #include <linux/seq_file.h>
25248 #include <linux/export.h> 25037 #include <linux/export.h>
@@ -25251,16 +25040,16 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/addrconf.c linux-3.4.57-vs2.3.3.9/ne
25251 25040
25252 /* Set to 3 to get tracing... */ 25041 /* Set to 3 to get tracing... */
25253 #define ACONF_DEBUG 2 25042 #define ACONF_DEBUG 2
25254@@ -1108,7 +1110,7 @@ out: 25043@@ -1321,7 +1323,7 @@ out:
25255 25044
25256 int ipv6_dev_get_saddr(struct net *net, struct net_device *dst_dev, 25045 int ipv6_dev_get_saddr(struct net *net, const struct net_device *dst_dev,
25257 const struct in6_addr *daddr, unsigned int prefs, 25046 const struct in6_addr *daddr, unsigned int prefs,
25258- struct in6_addr *saddr) 25047- struct in6_addr *saddr)
25259+ struct in6_addr *saddr, struct nx_info *nxi) 25048+ struct in6_addr *saddr, struct nx_info *nxi)
25260 { 25049 {
25261 struct ipv6_saddr_score scores[2], 25050 struct ipv6_saddr_score scores[2],
25262 *score = &scores[0], *hiscore = &scores[1]; 25051 *score = &scores[0], *hiscore = &scores[1];
25263@@ -1180,6 +1182,8 @@ int ipv6_dev_get_saddr(struct net *net, 25052@@ -1393,6 +1395,8 @@ int ipv6_dev_get_saddr(struct net *net,
25264 dev->name); 25053 dev->name);
25265 continue; 25054 continue;
25266 } 25055 }
@@ -25269,7 +25058,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/addrconf.c linux-3.4.57-vs2.3.3.9/ne
25269 25058
25270 score->rule = -1; 25059 score->rule = -1;
25271 bitmap_zero(score->scorebits, IPV6_SADDR_RULE_MAX); 25060 bitmap_zero(score->scorebits, IPV6_SADDR_RULE_MAX);
25272@@ -3206,7 +3210,10 @@ static void if6_seq_stop(struct seq_file 25061@@ -3448,7 +3452,10 @@ static void if6_seq_stop(struct seq_file
25273 static int if6_seq_show(struct seq_file *seq, void *v) 25062 static int if6_seq_show(struct seq_file *seq, void *v)
25274 { 25063 {
25275 struct inet6_ifaddr *ifp = (struct inet6_ifaddr *)v; 25064 struct inet6_ifaddr *ifp = (struct inet6_ifaddr *)v;
@@ -25281,7 +25070,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/addrconf.c linux-3.4.57-vs2.3.3.9/ne
25281 &ifp->addr, 25070 &ifp->addr,
25282 ifp->idev->dev->ifindex, 25071 ifp->idev->dev->ifindex,
25283 ifp->prefix_len, 25072 ifp->prefix_len,
25284@@ -3712,6 +3719,11 @@ static int in6_dump_addrs(struct inet6_d 25073@@ -3952,6 +3959,11 @@ static int in6_dump_addrs(struct inet6_d
25285 struct ifacaddr6 *ifaca; 25074 struct ifacaddr6 *ifaca;
25286 int err = 1; 25075 int err = 1;
25287 int ip_idx = *p_ip_idx; 25076 int ip_idx = *p_ip_idx;
@@ -25293,47 +25082,54 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/addrconf.c linux-3.4.57-vs2.3.3.9/ne
25293 25082
25294 read_lock_bh(&idev->lock); 25083 read_lock_bh(&idev->lock);
25295 switch (type) { 25084 switch (type) {
25296@@ -3722,6 +3734,8 @@ static int in6_dump_addrs(struct inet6_d 25085@@ -3962,6 +3974,8 @@ static int in6_dump_addrs(struct inet6_d
25297 list_for_each_entry(ifa, &idev->addr_list, if_list) { 25086 list_for_each_entry(ifa, &idev->addr_list, if_list) {
25298 if (++ip_idx < s_ip_idx) 25087 if (++ip_idx < s_ip_idx)
25299 continue; 25088 continue;
25300+ if (!v6_addr_in_nx_info(nxi, &ifa->addr, -1)) 25089+ if (!v6_addr_in_nx_info(nxi, &ifa->addr, -1))
25301+ continue; 25090+ continue;
25302 err = inet6_fill_ifaddr(skb, ifa, 25091 err = inet6_fill_ifaddr(skb, ifa,
25303 NETLINK_CB(cb->skb).pid, 25092 NETLINK_CB(cb->skb).portid,
25304 cb->nlh->nlmsg_seq, 25093 cb->nlh->nlmsg_seq,
25305@@ -3738,6 +3752,8 @@ static int in6_dump_addrs(struct inet6_d 25094@@ -3979,6 +3993,8 @@ static int in6_dump_addrs(struct inet6_d
25306 ifmca = ifmca->next, ip_idx++) { 25095 ifmca = ifmca->next, ip_idx++) {
25307 if (ip_idx < s_ip_idx) 25096 if (ip_idx < s_ip_idx)
25308 continue; 25097 continue;
25309+ if (!v6_addr_in_nx_info(nxi, &ifmca->mca_addr, -1)) 25098+ if (!v6_addr_in_nx_info(nxi, &ifmca->mca_addr, -1))
25310+ continue; 25099+ continue;
25311 err = inet6_fill_ifmcaddr(skb, ifmca, 25100 err = inet6_fill_ifmcaddr(skb, ifmca,
25312 NETLINK_CB(cb->skb).pid, 25101 NETLINK_CB(cb->skb).portid,
25313 cb->nlh->nlmsg_seq, 25102 cb->nlh->nlmsg_seq,
25314@@ -3753,6 +3769,8 @@ static int in6_dump_addrs(struct inet6_d 25103@@ -3994,6 +4010,8 @@ static int in6_dump_addrs(struct inet6_d
25315 ifaca = ifaca->aca_next, ip_idx++) { 25104 ifaca = ifaca->aca_next, ip_idx++) {
25316 if (ip_idx < s_ip_idx) 25105 if (ip_idx < s_ip_idx)
25317 continue; 25106 continue;
25318+ if (!v6_addr_in_nx_info(nxi, &ifaca->aca_addr, -1)) 25107+ if (!v6_addr_in_nx_info(nxi, &ifaca->aca_addr, -1))
25319+ continue; 25108+ continue;
25320 err = inet6_fill_ifacaddr(skb, ifaca, 25109 err = inet6_fill_ifacaddr(skb, ifaca,
25321 NETLINK_CB(cb->skb).pid, 25110 NETLINK_CB(cb->skb).portid,
25322 cb->nlh->nlmsg_seq, 25111 cb->nlh->nlmsg_seq,
25323@@ -4138,6 +4156,11 @@ static int inet6_dump_ifinfo(struct sk_b 25112@@ -4022,6 +4040,10 @@ static int inet6_dump_addr(struct sk_buf
25324 struct inet6_dev *idev; 25113 struct inet6_dev *idev;
25325 struct hlist_head *head; 25114 struct hlist_head *head;
25326 struct hlist_node *node; 25115
25327+ struct nx_info *nxi = skb->sk ? skb->sk->sk_nx_info : NULL;
25328+
25329+ /* FIXME: maybe disable ipv6 on non v6 guests? 25116+ /* FIXME: maybe disable ipv6 on non v6 guests?
25330+ if (skb->sk && skb->sk->sk_vx_info) 25117+ if (skb->sk && skb->sk->sk_vx_info)
25331+ return skb->len; */ 25118+ return skb->len; */
25119+
25120 s_h = cb->args[0];
25121 s_idx = idx = cb->args[1];
25122 s_ip_idx = ip_idx = cb->args[2];
25123@@ -4457,6 +4479,7 @@ static int inet6_dump_ifinfo(struct sk_b
25124 struct net_device *dev;
25125 struct inet6_dev *idev;
25126 struct hlist_head *head;
25127+ struct nx_info *nxi = skb->sk ? skb->sk->sk_nx_info : NULL;
25332 25128
25333 s_h = cb->args[0]; 25129 s_h = cb->args[0];
25334 s_idx = cb->args[1]; 25130 s_idx = cb->args[1];
25335@@ -4149,6 +4172,8 @@ static int inet6_dump_ifinfo(struct sk_b 25131@@ -4468,6 +4491,8 @@ static int inet6_dump_ifinfo(struct sk_b
25336 hlist_for_each_entry_rcu(dev, node, head, index_hlist) { 25132 hlist_for_each_entry_rcu(dev, head, index_hlist) {
25337 if (idx < s_idx) 25133 if (idx < s_idx)
25338 goto cont; 25134 goto cont;
25339+ if (!v6_dev_in_nx_info(dev, nxi)) 25135+ if (!v6_dev_in_nx_info(dev, nxi))
@@ -25341,10 +25137,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/addrconf.c linux-3.4.57-vs2.3.3.9/ne
25341 idev = __in6_dev_get(dev); 25137 idev = __in6_dev_get(dev);
25342 if (!idev) 25138 if (!idev)
25343 goto cont; 25139 goto cont;
25344diff -NurpP --minimal linux-3.4.57/net/ipv6/af_inet6.c linux-3.4.57-vs2.3.3.9/net/ipv6/af_inet6.c 25140diff -NurpP --minimal linux-3.10.17/net/ipv6/af_inet6.c linux-3.10.17-vs2.3.6.6/net/ipv6/af_inet6.c
25345--- linux-3.4.57/net/ipv6/af_inet6.c 2012-05-21 16:07:40.000000000 +0000 25141--- linux-3.10.17/net/ipv6/af_inet6.c 2013-07-14 17:01:38.000000000 +0000
25346+++ linux-3.4.57-vs2.3.3.9/net/ipv6/af_inet6.c 2012-09-01 09:15:04.000000000 +0000 25142+++ linux-3.10.17-vs2.3.6.6/net/ipv6/af_inet6.c 2013-08-22 20:30:00.000000000 +0000
25347@@ -42,6 +42,8 @@ 25143@@ -43,6 +43,8 @@
25348 #include <linux/netdevice.h> 25144 #include <linux/netdevice.h>
25349 #include <linux/icmpv6.h> 25145 #include <linux/icmpv6.h>
25350 #include <linux/netfilter_ipv6.h> 25146 #include <linux/netfilter_ipv6.h>
@@ -25353,21 +25149,22 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/af_inet6.c linux-3.4.57-vs2.3.3.9/ne
25353 25149
25354 #include <net/ip.h> 25150 #include <net/ip.h>
25355 #include <net/ipv6.h> 25151 #include <net/ipv6.h>
25356@@ -159,9 +161,12 @@ lookup_protocol: 25152@@ -159,10 +161,13 @@ lookup_protocol:
25357 } 25153 }
25358 25154
25359 err = -EPERM; 25155 err = -EPERM;
25360+ if ((protocol == IPPROTO_ICMPV6) && 25156+ if ((protocol == IPPROTO_ICMPV6) &&
25361+ nx_capable(CAP_NET_RAW, NXC_RAW_ICMP)) 25157+ nx_capable(CAP_NET_RAW, NXC_RAW_ICMP))
25362+ goto override; 25158+ goto override;
25363 if (sock->type == SOCK_RAW && !kern && !capable(CAP_NET_RAW)) 25159 if (sock->type == SOCK_RAW && !kern &&
25160 !ns_capable(net->user_ns, CAP_NET_RAW))
25364 goto out_rcu_unlock; 25161 goto out_rcu_unlock;
25365- 25162-
25366+override: 25163+override:
25367 sock->ops = answer->ops; 25164 sock->ops = answer->ops;
25368 answer_prot = answer->prot; 25165 answer_prot = answer->prot;
25369 answer_no_check = answer->no_check; 25166 answer_no_check = answer->no_check;
25370@@ -261,6 +266,7 @@ int inet6_bind(struct socket *sock, stru 25167@@ -262,6 +267,7 @@ int inet6_bind(struct socket *sock, stru
25371 struct inet_sock *inet = inet_sk(sk); 25168 struct inet_sock *inet = inet_sk(sk);
25372 struct ipv6_pinfo *np = inet6_sk(sk); 25169 struct ipv6_pinfo *np = inet6_sk(sk);
25373 struct net *net = sock_net(sk); 25170 struct net *net = sock_net(sk);
@@ -25375,7 +25172,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/af_inet6.c linux-3.4.57-vs2.3.3.9/ne
25375 __be32 v4addr = 0; 25172 __be32 v4addr = 0;
25376 unsigned short snum; 25173 unsigned short snum;
25377 int addr_type = 0; 25174 int addr_type = 0;
25378@@ -276,6 +282,10 @@ int inet6_bind(struct socket *sock, stru 25175@@ -277,6 +283,10 @@ int inet6_bind(struct socket *sock, stru
25379 if (addr->sin6_family != AF_INET6) 25176 if (addr->sin6_family != AF_INET6)
25380 return -EAFNOSUPPORT; 25177 return -EAFNOSUPPORT;
25381 25178
@@ -25386,7 +25183,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/af_inet6.c linux-3.4.57-vs2.3.3.9/ne
25386 addr_type = ipv6_addr_type(&addr->sin6_addr); 25183 addr_type = ipv6_addr_type(&addr->sin6_addr);
25387 if ((addr_type & IPV6_ADDR_MULTICAST) && sock->type == SOCK_STREAM) 25184 if ((addr_type & IPV6_ADDR_MULTICAST) && sock->type == SOCK_STREAM)
25388 return -EINVAL; 25185 return -EINVAL;
25389@@ -307,6 +317,7 @@ int inet6_bind(struct socket *sock, stru 25186@@ -308,6 +318,7 @@ int inet6_bind(struct socket *sock, stru
25390 /* Reproduce AF_INET checks to make the bindings consistent */ 25187 /* Reproduce AF_INET checks to make the bindings consistent */
25391 v4addr = addr->sin6_addr.s6_addr32[3]; 25188 v4addr = addr->sin6_addr.s6_addr32[3];
25392 chk_addr_ret = inet_addr_type(net, v4addr); 25189 chk_addr_ret = inet_addr_type(net, v4addr);
@@ -25394,7 +25191,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/af_inet6.c linux-3.4.57-vs2.3.3.9/ne
25394 if (!sysctl_ip_nonlocal_bind && 25191 if (!sysctl_ip_nonlocal_bind &&
25395 !(inet->freebind || inet->transparent) && 25192 !(inet->freebind || inet->transparent) &&
25396 v4addr != htonl(INADDR_ANY) && 25193 v4addr != htonl(INADDR_ANY) &&
25397@@ -316,6 +327,10 @@ int inet6_bind(struct socket *sock, stru 25194@@ -317,6 +328,10 @@ int inet6_bind(struct socket *sock, stru
25398 err = -EADDRNOTAVAIL; 25195 err = -EADDRNOTAVAIL;
25399 goto out; 25196 goto out;
25400 } 25197 }
@@ -25405,7 +25202,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/af_inet6.c linux-3.4.57-vs2.3.3.9/ne
25405 } else { 25202 } else {
25406 if (addr_type != IPV6_ADDR_ANY) { 25203 if (addr_type != IPV6_ADDR_ANY) {
25407 struct net_device *dev = NULL; 25204 struct net_device *dev = NULL;
25408@@ -342,6 +357,11 @@ int inet6_bind(struct socket *sock, stru 25205@@ -343,6 +358,11 @@ int inet6_bind(struct socket *sock, stru
25409 } 25206 }
25410 } 25207 }
25411 25208
@@ -25417,7 +25214,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/af_inet6.c linux-3.4.57-vs2.3.3.9/ne
25417 /* ipv4 addr of the socket is invalid. Only the 25214 /* ipv4 addr of the socket is invalid. Only the
25418 * unspecified and mapped address have a v4 equivalent. 25215 * unspecified and mapped address have a v4 equivalent.
25419 */ 25216 */
25420@@ -358,6 +378,9 @@ int inet6_bind(struct socket *sock, stru 25217@@ -359,6 +379,9 @@ int inet6_bind(struct socket *sock, stru
25421 } 25218 }
25422 } 25219 }
25423 25220
@@ -25427,7 +25224,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/af_inet6.c linux-3.4.57-vs2.3.3.9/ne
25427 inet->inet_rcv_saddr = v4addr; 25224 inet->inet_rcv_saddr = v4addr;
25428 inet->inet_saddr = v4addr; 25225 inet->inet_saddr = v4addr;
25429 25226
25430@@ -459,9 +482,11 @@ int inet6_getname(struct socket *sock, s 25227@@ -460,9 +483,11 @@ int inet6_getname(struct socket *sock, s
25431 return -ENOTCONN; 25228 return -ENOTCONN;
25432 sin->sin6_port = inet->inet_dport; 25229 sin->sin6_port = inet->inet_dport;
25433 sin->sin6_addr = np->daddr; 25230 sin->sin6_addr = np->daddr;
@@ -25439,10 +25236,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/af_inet6.c linux-3.4.57-vs2.3.3.9/ne
25439 if (ipv6_addr_any(&np->rcv_saddr)) 25236 if (ipv6_addr_any(&np->rcv_saddr))
25440 sin->sin6_addr = np->saddr; 25237 sin->sin6_addr = np->saddr;
25441 else 25238 else
25442diff -NurpP --minimal linux-3.4.57/net/ipv6/datagram.c linux-3.4.57-vs2.3.3.9/net/ipv6/datagram.c 25239diff -NurpP --minimal linux-3.10.17/net/ipv6/datagram.c linux-3.10.17-vs2.3.6.6/net/ipv6/datagram.c
25443--- linux-3.4.57/net/ipv6/datagram.c 2012-05-21 16:07:40.000000000 +0000 25240--- linux-3.10.17/net/ipv6/datagram.c 2013-07-14 17:01:38.000000000 +0000
25444+++ linux-3.4.57-vs2.3.3.9/net/ipv6/datagram.c 2012-05-21 16:15:05.000000000 +0000 25241+++ linux-3.10.17-vs2.3.6.6/net/ipv6/datagram.c 2013-08-22 20:30:00.000000000 +0000
25445@@ -642,7 +642,7 @@ int datagram_send_ctl(struct net *net, s 25242@@ -652,7 +652,7 @@ int ip6_datagram_send_ctl(struct net *ne
25446 25243
25447 rcu_read_lock(); 25244 rcu_read_lock();
25448 if (fl6->flowi6_oif) { 25245 if (fl6->flowi6_oif) {
@@ -25451,10 +25248,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/datagram.c linux-3.4.57-vs2.3.3.9/ne
25451 if (!dev) { 25248 if (!dev) {
25452 rcu_read_unlock(); 25249 rcu_read_unlock();
25453 return -ENODEV; 25250 return -ENODEV;
25454diff -NurpP --minimal linux-3.4.57/net/ipv6/fib6_rules.c linux-3.4.57-vs2.3.3.9/net/ipv6/fib6_rules.c 25251diff -NurpP --minimal linux-3.10.17/net/ipv6/fib6_rules.c linux-3.10.17-vs2.3.6.6/net/ipv6/fib6_rules.c
25455--- linux-3.4.57/net/ipv6/fib6_rules.c 2012-03-19 18:47:33.000000000 +0000 25252--- linux-3.10.17/net/ipv6/fib6_rules.c 2013-02-19 13:58:58.000000000 +0000
25456+++ linux-3.4.57-vs2.3.3.9/net/ipv6/fib6_rules.c 2012-05-21 16:15:05.000000000 +0000 25253+++ linux-3.10.17-vs2.3.6.6/net/ipv6/fib6_rules.c 2013-08-22 20:30:00.000000000 +0000
25457@@ -91,7 +91,7 @@ static int fib6_rule_action(struct fib_r 25254@@ -90,7 +90,7 @@ static int fib6_rule_action(struct fib_r
25458 ip6_dst_idev(&rt->dst)->dev, 25255 ip6_dst_idev(&rt->dst)->dev,
25459 &flp6->daddr, 25256 &flp6->daddr,
25460 rt6_flags2srcprefs(flags), 25257 rt6_flags2srcprefs(flags),
@@ -25463,9 +25260,9 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/fib6_rules.c linux-3.4.57-vs2.3.3.9/
25463 goto again; 25260 goto again;
25464 if (!ipv6_prefix_equal(&saddr, &r->src.addr, 25261 if (!ipv6_prefix_equal(&saddr, &r->src.addr,
25465 r->src.plen)) 25262 r->src.plen))
25466diff -NurpP --minimal linux-3.4.57/net/ipv6/inet6_hashtables.c linux-3.4.57-vs2.3.3.9/net/ipv6/inet6_hashtables.c 25263diff -NurpP --minimal linux-3.10.17/net/ipv6/inet6_hashtables.c linux-3.10.17-vs2.3.6.6/net/ipv6/inet6_hashtables.c
25467--- linux-3.4.57/net/ipv6/inet6_hashtables.c 2011-10-24 16:45:34.000000000 +0000 25264--- linux-3.10.17/net/ipv6/inet6_hashtables.c 2013-05-31 13:45:32.000000000 +0000
25468+++ linux-3.4.57-vs2.3.3.9/net/ipv6/inet6_hashtables.c 2012-05-21 16:15:05.000000000 +0000 25265+++ linux-3.10.17-vs2.3.6.6/net/ipv6/inet6_hashtables.c 2013-08-22 20:30:00.000000000 +0000
25469@@ -16,6 +16,7 @@ 25266@@ -16,6 +16,7 @@
25470 25267
25471 #include <linux/module.h> 25268 #include <linux/module.h>
@@ -25482,7 +25279,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/inet6_hashtables.c linux-3.4.57-vs2.
25482 rcu_read_lock(); 25279 rcu_read_lock();
25483 begin: 25280 begin:
25484 sk_nulls_for_each_rcu(sk, node, &head->chain) { 25281 sk_nulls_for_each_rcu(sk, node, &head->chain) {
25485@@ -95,7 +95,7 @@ begin: 25282@@ -97,7 +97,7 @@ begin:
25486 sock_put(sk); 25283 sock_put(sk);
25487 goto begin; 25284 goto begin;
25488 } 25285 }
@@ -25491,7 +25288,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/inet6_hashtables.c linux-3.4.57-vs2.
25491 } 25288 }
25492 } 25289 }
25493 if (get_nulls_value(node) != slot) 25290 if (get_nulls_value(node) != slot)
25494@@ -141,6 +141,9 @@ static inline int compute_score(struct s 25291@@ -147,6 +147,9 @@ static inline int compute_score(struct s
25495 if (!ipv6_addr_equal(&np->rcv_saddr, daddr)) 25292 if (!ipv6_addr_equal(&np->rcv_saddr, daddr))
25496 return -1; 25293 return -1;
25497 score++; 25294 score++;
@@ -25501,10 +25298,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/inet6_hashtables.c linux-3.4.57-vs2.
25501 } 25298 }
25502 if (sk->sk_bound_dev_if) { 25299 if (sk->sk_bound_dev_if) {
25503 if (sk->sk_bound_dev_if != dif) 25300 if (sk->sk_bound_dev_if != dif)
25504diff -NurpP --minimal linux-3.4.57/net/ipv6/ip6_output.c linux-3.4.57-vs2.3.3.9/net/ipv6/ip6_output.c 25301diff -NurpP --minimal linux-3.10.17/net/ipv6/ip6_output.c linux-3.10.17-vs2.3.6.6/net/ipv6/ip6_output.c
25505--- linux-3.4.57/net/ipv6/ip6_output.c 2013-08-13 14:13:45.000000000 +0000 25302--- linux-3.10.17/net/ipv6/ip6_output.c 2013-10-25 15:17:46.000000000 +0000
25506+++ linux-3.4.57-vs2.3.3.9/net/ipv6/ip6_output.c 2013-08-13 17:07:37.000000000 +0000 25303+++ linux-3.10.17-vs2.3.6.6/net/ipv6/ip6_output.c 2013-10-26 18:03:17.000000000 +0000
25507@@ -972,7 +972,8 @@ static int ip6_dst_lookup_tail(struct so 25304@@ -882,7 +882,8 @@ static int ip6_dst_lookup_tail(struct so
25508 struct rt6_info *rt = (struct rt6_info *) *dst; 25305 struct rt6_info *rt = (struct rt6_info *) *dst;
25509 err = ip6_route_get_saddr(net, rt, &fl6->daddr, 25306 err = ip6_route_get_saddr(net, rt, &fl6->daddr,
25510 sk ? inet6_sk(sk)->srcprefs : 0, 25307 sk ? inet6_sk(sk)->srcprefs : 0,
@@ -25514,10 +25311,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/ip6_output.c linux-3.4.57-vs2.3.3.9/
25514 if (err) 25311 if (err)
25515 goto out_err_release; 25312 goto out_err_release;
25516 } 25313 }
25517diff -NurpP --minimal linux-3.4.57/net/ipv6/ndisc.c linux-3.4.57-vs2.3.3.9/net/ipv6/ndisc.c 25314diff -NurpP --minimal linux-3.10.17/net/ipv6/ndisc.c linux-3.10.17-vs2.3.6.6/net/ipv6/ndisc.c
25518--- linux-3.4.57/net/ipv6/ndisc.c 2013-08-13 14:13:45.000000000 +0000 25315--- linux-3.10.17/net/ipv6/ndisc.c 2013-10-25 15:17:46.000000000 +0000
25519+++ linux-3.4.57-vs2.3.3.9/net/ipv6/ndisc.c 2012-11-18 23:52:30.000000000 +0000 25316+++ linux-3.10.17-vs2.3.6.6/net/ipv6/ndisc.c 2013-10-09 17:37:22.000000000 +0000
25520@@ -575,7 +575,7 @@ static void ndisc_send_na(struct net_dev 25317@@ -487,7 +487,7 @@ static void ndisc_send_na(struct net_dev
25521 } else { 25318 } else {
25522 if (ipv6_dev_get_saddr(dev_net(dev), dev, daddr, 25319 if (ipv6_dev_get_saddr(dev_net(dev), dev, daddr,
25523 inet6_sk(dev_net(dev)->ipv6.ndisc_sk)->srcprefs, 25320 inet6_sk(dev_net(dev)->ipv6.ndisc_sk)->srcprefs,
@@ -25526,9 +25323,21 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/ndisc.c linux-3.4.57-vs2.3.3.9/net/i
25526 return; 25323 return;
25527 src_addr = &tmpaddr; 25324 src_addr = &tmpaddr;
25528 } 25325 }
25529diff -NurpP --minimal linux-3.4.57/net/ipv6/raw.c linux-3.4.57-vs2.3.3.9/net/ipv6/raw.c 25326diff -NurpP --minimal linux-3.10.17/net/ipv6/netfilter/ip6t_MASQUERADE.c linux-3.10.17-vs2.3.6.6/net/ipv6/netfilter/ip6t_MASQUERADE.c
25530--- linux-3.4.57/net/ipv6/raw.c 2013-08-13 14:13:45.000000000 +0000 25327--- linux-3.10.17/net/ipv6/netfilter/ip6t_MASQUERADE.c 2012-12-11 03:30:57.000000000 +0000
25531+++ linux-3.4.57-vs2.3.3.9/net/ipv6/raw.c 2012-10-22 13:09:53.000000000 +0000 25328+++ linux-3.10.17-vs2.3.6.6/net/ipv6/netfilter/ip6t_MASQUERADE.c 2013-08-22 20:30:00.000000000 +0000
25329@@ -34,7 +34,7 @@ masquerade_tg6(struct sk_buff *skb, cons
25330 ctinfo == IP_CT_RELATED_REPLY));
25331
25332 if (ipv6_dev_get_saddr(dev_net(par->out), par->out,
25333- &ipv6_hdr(skb)->daddr, 0, &src) < 0)
25334+ &ipv6_hdr(skb)->daddr, 0, &src, NULL) < 0)
25335 return NF_DROP;
25336
25337 nfct_nat(ct)->masq_index = par->out->ifindex;
25338diff -NurpP --minimal linux-3.10.17/net/ipv6/raw.c linux-3.10.17-vs2.3.6.6/net/ipv6/raw.c
25339--- linux-3.10.17/net/ipv6/raw.c 2013-07-14 17:01:38.000000000 +0000
25340+++ linux-3.10.17-vs2.3.6.6/net/ipv6/raw.c 2013-08-22 20:30:00.000000000 +0000
25532@@ -30,6 +30,7 @@ 25341@@ -30,6 +30,7 @@
25533 #include <linux/icmpv6.h> 25342 #include <linux/icmpv6.h>
25534 #include <linux/netfilter.h> 25343 #include <linux/netfilter.h>
@@ -25537,7 +25346,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/raw.c linux-3.4.57-vs2.3.3.9/net/ipv
25537 #include <linux/skbuff.h> 25346 #include <linux/skbuff.h>
25538 #include <linux/compat.h> 25347 #include <linux/compat.h>
25539 #include <asm/uaccess.h> 25348 #include <asm/uaccess.h>
25540@@ -284,6 +285,13 @@ static int rawv6_bind(struct sock *sk, s 25349@@ -283,6 +284,13 @@ static int rawv6_bind(struct sock *sk, s
25541 goto out_unlock; 25350 goto out_unlock;
25542 } 25351 }
25543 25352
@@ -25551,18 +25360,18 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/raw.c linux-3.4.57-vs2.3.3.9/net/ipv
25551 /* ipv4 addr of the socket is invalid. Only the 25360 /* ipv4 addr of the socket is invalid. Only the
25552 * unspecified and mapped address have a v4 equivalent. 25361 * unspecified and mapped address have a v4 equivalent.
25553 */ 25362 */
25554diff -NurpP --minimal linux-3.4.57/net/ipv6/route.c linux-3.4.57-vs2.3.3.9/net/ipv6/route.c 25363diff -NurpP --minimal linux-3.10.17/net/ipv6/route.c linux-3.10.17-vs2.3.6.6/net/ipv6/route.c
25555--- linux-3.4.57/net/ipv6/route.c 2013-08-13 14:13:45.000000000 +0000 25364--- linux-3.10.17/net/ipv6/route.c 2013-10-25 15:17:46.000000000 +0000
25556+++ linux-3.4.57-vs2.3.3.9/net/ipv6/route.c 2013-08-13 17:07:38.000000000 +0000 25365+++ linux-3.10.17-vs2.3.6.6/net/ipv6/route.c 2013-08-22 20:30:00.000000000 +0000
25557@@ -55,6 +55,7 @@ 25366@@ -58,6 +58,7 @@
25558 #include <net/xfrm.h>
25559 #include <net/netevent.h> 25367 #include <net/netevent.h>
25560 #include <net/netlink.h> 25368 #include <net/netlink.h>
25369 #include <net/nexthop.h>
25561+#include <linux/vs_inet6.h> 25370+#include <linux/vs_inet6.h>
25562 25371
25563 #include <asm/uaccess.h> 25372 #include <asm/uaccess.h>
25564 25373
25565@@ -2150,15 +2151,17 @@ int ip6_route_get_saddr(struct net *net, 25374@@ -2101,15 +2102,17 @@ int ip6_route_get_saddr(struct net *net,
25566 struct rt6_info *rt, 25375 struct rt6_info *rt,
25567 const struct in6_addr *daddr, 25376 const struct in6_addr *daddr,
25568 unsigned int prefs, 25377 unsigned int prefs,
@@ -25583,27 +25392,27 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/route.c linux-3.4.57-vs2.3.3.9/net/i
25583 return err; 25392 return err;
25584 } 25393 }
25585 25394
25586@@ -2489,7 +2492,8 @@ static int rt6_fill_node(struct net *net 25395@@ -2529,7 +2532,8 @@ static int rt6_fill_node(struct net *net
25587 NLA_PUT_U32(skb, RTA_IIF, iif); 25396 goto nla_put_failure;
25588 } else if (dst) { 25397 } else if (dst) {
25589 struct in6_addr saddr_buf; 25398 struct in6_addr saddr_buf;
25590- if (ip6_route_get_saddr(net, rt, dst, 0, &saddr_buf) == 0) 25399- if (ip6_route_get_saddr(net, rt, dst, 0, &saddr_buf) == 0 &&
25591+ if (ip6_route_get_saddr(net, rt, dst, 0, &saddr_buf, 25400+ if (ip6_route_get_saddr(net, rt, dst, 0, &saddr_buf,
25592+ (skb->sk ? skb->sk->sk_nx_info : NULL)) == 0) 25401+ (skb->sk ? skb->sk->sk_nx_info : NULL)) == 0 &&
25593 NLA_PUT(skb, RTA_PREFSRC, 16, &saddr_buf); 25402 nla_put(skb, RTA_PREFSRC, 16, &saddr_buf))
25403 goto nla_put_failure;
25594 } 25404 }
25595 25405@@ -2741,6 +2745,7 @@ static int rt6_info_route(struct rt6_inf
25596@@ -2716,6 +2720,7 @@ static int rt6_info_route(struct rt6_inf 25406 {
25597 struct seq_file *m = p_arg; 25407 struct seq_file *m = p_arg;
25598 struct neighbour *n;
25599 25408
25600+ /* FIXME: check for network context? */ 25409+ /* FIXME: check for network context? */
25601 seq_printf(m, "%pi6 %02x ", &rt->rt6i_dst.addr, rt->rt6i_dst.plen); 25410 seq_printf(m, "%pi6 %02x ", &rt->rt6i_dst.addr, rt->rt6i_dst.plen);
25602 25411
25603 #ifdef CONFIG_IPV6_SUBTREES 25412 #ifdef CONFIG_IPV6_SUBTREES
25604diff -NurpP --minimal linux-3.4.57/net/ipv6/tcp_ipv6.c linux-3.4.57-vs2.3.3.9/net/ipv6/tcp_ipv6.c 25413diff -NurpP --minimal linux-3.10.17/net/ipv6/tcp_ipv6.c linux-3.10.17-vs2.3.6.6/net/ipv6/tcp_ipv6.c
25605--- linux-3.4.57/net/ipv6/tcp_ipv6.c 2013-08-13 14:13:45.000000000 +0000 25414--- linux-3.10.17/net/ipv6/tcp_ipv6.c 2013-10-25 15:17:46.000000000 +0000
25606+++ linux-3.4.57-vs2.3.3.9/net/ipv6/tcp_ipv6.c 2013-07-14 13:38:37.000000000 +0000 25415+++ linux-3.10.17-vs2.3.6.6/net/ipv6/tcp_ipv6.c 2013-10-09 17:37:22.000000000 +0000
25607@@ -71,6 +71,7 @@ 25416@@ -71,6 +71,7 @@
25608 25417
25609 #include <linux/crypto.h> 25418 #include <linux/crypto.h>
@@ -25612,7 +25421,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/tcp_ipv6.c linux-3.4.57-vs2.3.3.9/ne
25612 25421
25613 static void tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb); 25422 static void tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb);
25614 static void tcp_v6_reqsk_send_ack(struct sock *sk, struct sk_buff *skb, 25423 static void tcp_v6_reqsk_send_ack(struct sock *sk, struct sk_buff *skb,
25615@@ -163,8 +164,15 @@ static int tcp_v6_connect(struct sock *s 25424@@ -164,8 +165,15 @@ static int tcp_v6_connect(struct sock *s
25616 * connect() to INADDR_ANY means loopback (BSD'ism). 25425 * connect() to INADDR_ANY means loopback (BSD'ism).
25617 */ 25426 */
25618 25427
@@ -25630,17 +25439,18 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/tcp_ipv6.c linux-3.4.57-vs2.3.3.9/ne
25630 25439
25631 addr_type = ipv6_addr_type(&usin->sin6_addr); 25440 addr_type = ipv6_addr_type(&usin->sin6_addr);
25632 25441
25633diff -NurpP --minimal linux-3.4.57/net/ipv6/udp.c linux-3.4.57-vs2.3.3.9/net/ipv6/udp.c 25442diff -NurpP --minimal linux-3.10.17/net/ipv6/udp.c linux-3.10.17-vs2.3.6.6/net/ipv6/udp.c
25634--- linux-3.4.57/net/ipv6/udp.c 2013-08-13 14:13:45.000000000 +0000 25443--- linux-3.10.17/net/ipv6/udp.c 2013-10-25 15:17:46.000000000 +0000
25635+++ linux-3.4.57-vs2.3.3.9/net/ipv6/udp.c 2013-08-13 17:07:38.000000000 +0000 25444+++ linux-3.10.17-vs2.3.6.6/net/ipv6/udp.c 2013-08-22 20:30:00.000000000 +0000
25636@@ -45,41 +45,67 @@ 25445@@ -46,42 +46,68 @@
25637 #include <net/tcp_states.h>
25638 #include <net/ip6_checksum.h> 25446 #include <net/ip6_checksum.h>
25639 #include <net/xfrm.h> 25447 #include <net/xfrm.h>
25448 #include <net/inet6_hashtables.h>
25640+#include <linux/vs_inet6.h> 25449+#include <linux/vs_inet6.h>
25641 25450
25642 #include <linux/proc_fs.h> 25451 #include <linux/proc_fs.h>
25643 #include <linux/seq_file.h> 25452 #include <linux/seq_file.h>
25453 #include <trace/events/skb.h>
25644 #include "udp_impl.h" 25454 #include "udp_impl.h"
25645 25455
25646-int ipv6_rcv_saddr_equal(const struct sock *sk, const struct sock *sk2) 25456-int ipv6_rcv_saddr_equal(const struct sock *sk, const struct sock *sk2)
@@ -25714,7 +25524,7 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25714 } 25524 }
25715 25525
25716 static unsigned int udp6_portaddr_hash(struct net *net, 25526 static unsigned int udp6_portaddr_hash(struct net *net,
25717@@ -143,6 +169,10 @@ static inline int compute_score(struct s 25527@@ -145,6 +171,10 @@ static inline int compute_score(struct s
25718 if (!ipv6_addr_equal(&np->rcv_saddr, daddr)) 25528 if (!ipv6_addr_equal(&np->rcv_saddr, daddr))
25719 return -1; 25529 return -1;
25720 score++; 25530 score++;
@@ -25725,9 +25535,9 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/udp.c linux-3.4.57-vs2.3.3.9/net/ipv
25725 } 25535 }
25726 if (!ipv6_addr_any(&np->daddr)) { 25536 if (!ipv6_addr_any(&np->daddr)) {
25727 if (!ipv6_addr_equal(&np->daddr, saddr)) 25537 if (!ipv6_addr_equal(&np->daddr, saddr))
25728diff -NurpP --minimal linux-3.4.57/net/ipv6/xfrm6_policy.c linux-3.4.57-vs2.3.3.9/net/ipv6/xfrm6_policy.c 25538diff -NurpP --minimal linux-3.10.17/net/ipv6/xfrm6_policy.c linux-3.10.17-vs2.3.6.6/net/ipv6/xfrm6_policy.c
25729--- linux-3.4.57/net/ipv6/xfrm6_policy.c 2013-08-13 14:13:45.000000000 +0000 25539--- linux-3.10.17/net/ipv6/xfrm6_policy.c 2013-07-14 17:01:38.000000000 +0000
25730+++ linux-3.4.57-vs2.3.3.9/net/ipv6/xfrm6_policy.c 2013-07-14 13:38:37.000000000 +0000 25540+++ linux-3.10.17-vs2.3.6.6/net/ipv6/xfrm6_policy.c 2013-08-22 20:30:00.000000000 +0000
25731@@ -63,7 +63,7 @@ static int xfrm6_get_saddr(struct net *n 25541@@ -63,7 +63,7 @@ static int xfrm6_get_saddr(struct net *n
25732 dev = ip6_dst_idev(dst)->dev; 25542 dev = ip6_dst_idev(dst)->dev;
25733 ipv6_dev_get_saddr(dev_net(dev), dev, 25543 ipv6_dev_get_saddr(dev_net(dev), dev,
@@ -25737,10 +25547,10 @@ diff -NurpP --minimal linux-3.4.57/net/ipv6/xfrm6_policy.c linux-3.4.57-vs2.3.3.
25737 dst_release(dst); 25547 dst_release(dst);
25738 return 0; 25548 return 0;
25739 } 25549 }
25740diff -NurpP --minimal linux-3.4.57/net/netfilter/ipvs/ip_vs_xmit.c linux-3.4.57-vs2.3.3.9/net/netfilter/ipvs/ip_vs_xmit.c 25550diff -NurpP --minimal linux-3.10.17/net/netfilter/ipvs/ip_vs_xmit.c linux-3.10.17-vs2.3.6.6/net/netfilter/ipvs/ip_vs_xmit.c
25741--- linux-3.4.57/net/netfilter/ipvs/ip_vs_xmit.c 2012-03-19 18:47:33.000000000 +0000 25551--- linux-3.10.17/net/netfilter/ipvs/ip_vs_xmit.c 2013-10-25 15:17:46.000000000 +0000
25742+++ linux-3.4.57-vs2.3.3.9/net/netfilter/ipvs/ip_vs_xmit.c 2012-05-21 16:15:05.000000000 +0000 25552+++ linux-3.10.17-vs2.3.6.6/net/netfilter/ipvs/ip_vs_xmit.c 2013-10-26 18:03:17.000000000 +0000
25743@@ -226,7 +226,7 @@ __ip_vs_route_output_v6(struct net *net, 25553@@ -316,7 +316,7 @@ __ip_vs_route_output_v6(struct net *net,
25744 return dst; 25554 return dst;
25745 if (ipv6_addr_any(&fl6.saddr) && 25555 if (ipv6_addr_any(&fl6.saddr) &&
25746 ipv6_dev_get_saddr(net, ip6_dst_idev(dst)->dev, 25556 ipv6_dev_get_saddr(net, ip6_dst_idev(dst)->dev,
@@ -25749,21 +25559,21 @@ diff -NurpP --minimal linux-3.4.57/net/netfilter/ipvs/ip_vs_xmit.c linux-3.4.57-
25749 goto out_err; 25559 goto out_err;
25750 if (do_xfrm) { 25560 if (do_xfrm) {
25751 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0); 25561 dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0);
25752diff -NurpP --minimal linux-3.4.57/net/netlink/af_netlink.c linux-3.4.57-vs2.3.3.9/net/netlink/af_netlink.c 25562diff -NurpP --minimal linux-3.10.17/net/netlink/af_netlink.c linux-3.10.17-vs2.3.6.6/net/netlink/af_netlink.c
25753--- linux-3.4.57/net/netlink/af_netlink.c 2013-08-13 14:13:46.000000000 +0000 25563--- linux-3.10.17/net/netlink/af_netlink.c 2013-07-14 17:01:39.000000000 +0000
25754+++ linux-3.4.57-vs2.3.3.9/net/netlink/af_netlink.c 2012-11-18 23:52:30.000000000 +0000 25564+++ linux-3.10.17-vs2.3.6.6/net/netlink/af_netlink.c 2013-08-22 21:19:02.000000000 +0000
25755@@ -55,6 +55,9 @@ 25565@@ -57,6 +57,9 @@
25756 #include <linux/types.h>
25757 #include <linux/audit.h> 25566 #include <linux/audit.h>
25758 #include <linux/mutex.h> 25567 #include <linux/mutex.h>
25568 #include <linux/vmalloc.h>
25759+#include <linux/vs_context.h> 25569+#include <linux/vs_context.h>
25760+#include <linux/vs_network.h> 25570+#include <linux/vs_network.h>
25761+#include <linux/vs_limit.h> 25571+#include <linux/vs_limit.h>
25572 #include <asm/cacheflush.h>
25762 25573
25763 #include <net/net_namespace.h> 25574 #include <net/net_namespace.h>
25764 #include <net/sock.h> 25575@@ -2684,6 +2687,8 @@ static struct sock *netlink_seq_socket_i
25765@@ -1951,6 +1954,8 @@ static struct sock *netlink_seq_socket_i 25576 sk_for_each(s, &hash->table[j]) {
25766 sk_for_each(s, node, &hash->table[j]) {
25767 if (sock_net(s) != seq_file_net(seq)) 25577 if (sock_net(s) != seq_file_net(seq))
25768 continue; 25578 continue;
25769+ if (!nx_check(s->sk_nid, VS_WATCH_P | VS_IDENT)) 25579+ if (!nx_check(s->sk_nid, VS_WATCH_P | VS_IDENT))
@@ -25771,7 +25581,7 @@ diff -NurpP --minimal linux-3.4.57/net/netlink/af_netlink.c linux-3.4.57-vs2.3.3
25771 if (off == pos) { 25581 if (off == pos) {
25772 iter->link = i; 25582 iter->link = i;
25773 iter->hash_idx = j; 25583 iter->hash_idx = j;
25774@@ -1985,7 +1990,8 @@ static void *netlink_seq_next(struct seq 25584@@ -2718,7 +2723,8 @@ static void *netlink_seq_next(struct seq
25775 s = v; 25585 s = v;
25776 do { 25586 do {
25777 s = sk_next(s); 25587 s = sk_next(s);
@@ -25781,7 +25591,7 @@ diff -NurpP --minimal linux-3.4.57/net/netlink/af_netlink.c linux-3.4.57-vs2.3.3
25781 if (s) 25591 if (s)
25782 return s; 25592 return s;
25783 25593
25784@@ -1997,7 +2003,8 @@ static void *netlink_seq_next(struct seq 25594@@ -2730,7 +2736,8 @@ static void *netlink_seq_next(struct seq
25785 25595
25786 for (; j <= hash->mask; j++) { 25596 for (; j <= hash->mask; j++) {
25787 s = sk_head(&hash->table[j]); 25597 s = sk_head(&hash->table[j]);
@@ -25791,9 +25601,9 @@ diff -NurpP --minimal linux-3.4.57/net/netlink/af_netlink.c linux-3.4.57-vs2.3.3
25791 s = sk_next(s); 25601 s = sk_next(s);
25792 if (s) { 25602 if (s) {
25793 iter->link = i; 25603 iter->link = i;
25794diff -NurpP --minimal linux-3.4.57/net/socket.c linux-3.4.57-vs2.3.3.9/net/socket.c 25604diff -NurpP --minimal linux-3.10.17/net/socket.c linux-3.10.17-vs2.3.6.6/net/socket.c
25795--- linux-3.4.57/net/socket.c 2013-08-13 14:13:48.000000000 +0000 25605--- linux-3.10.17/net/socket.c 2013-07-14 17:01:39.000000000 +0000
25796+++ linux-3.4.57-vs2.3.3.9/net/socket.c 2013-07-14 13:38:39.000000000 +0000 25606+++ linux-3.10.17-vs2.3.6.6/net/socket.c 2013-08-22 20:30:00.000000000 +0000
25797@@ -98,6 +98,10 @@ 25607@@ -98,6 +98,10 @@
25798 25608
25799 #include <net/sock.h> 25609 #include <net/sock.h>
@@ -25805,15 +25615,14 @@ diff -NurpP --minimal linux-3.4.57/net/socket.c linux-3.4.57-vs2.3.3.9/net/socke
25805 25615
25806 #include <linux/if_tun.h> 25616 #include <linux/if_tun.h>
25807 #include <linux/ipv6_route.h> 25617 #include <linux/ipv6_route.h>
25808@@ -551,6 +555,7 @@ static inline int __sock_sendmsg_nosec(s 25618@@ -616,13 +620,29 @@ static inline int __sock_sendmsg_nosec(s
25809 struct msghdr *msg, size_t size) 25619 struct msghdr *msg, size_t size)
25810 { 25620 {
25811 struct sock_iocb *si = kiocb_to_siocb(iocb); 25621 struct sock_iocb *si = kiocb_to_siocb(iocb);
25812+ size_t len; 25622+ size_t len;
25813 25623
25814 sock_update_classid(sock->sk); 25624 si->sock = sock;
25815 25625 si->scm = NULL;
25816@@ -561,7 +566,22 @@ static inline int __sock_sendmsg_nosec(s
25817 si->msg = msg; 25626 si->msg = msg;
25818 si->size = size; 25627 si->size = size;
25819 25628
@@ -25837,15 +25646,15 @@ diff -NurpP --minimal linux-3.4.57/net/socket.c linux-3.4.57-vs2.3.3.9/net/socke
25837 } 25646 }
25838 25647
25839 static inline int __sock_sendmsg(struct kiocb *iocb, struct socket *sock, 25648 static inline int __sock_sendmsg(struct kiocb *iocb, struct socket *sock,
25840@@ -717,6 +737,7 @@ static inline int __sock_recvmsg_nosec(s 25649@@ -766,6 +786,7 @@ static inline int __sock_recvmsg_nosec(s
25841 struct msghdr *msg, size_t size, int flags) 25650 struct msghdr *msg, size_t size, int flags)
25842 { 25651 {
25843 struct sock_iocb *si = kiocb_to_siocb(iocb); 25652 struct sock_iocb *si = kiocb_to_siocb(iocb);
25844+ int len; 25653+ int len;
25845 25654
25846 sock_update_classid(sock->sk); 25655 si->sock = sock;
25847 25656 si->scm = NULL;
25848@@ -726,7 +747,18 @@ static inline int __sock_recvmsg_nosec(s 25657@@ -773,7 +794,18 @@ static inline int __sock_recvmsg_nosec(s
25849 si->size = size; 25658 si->size = size;
25850 si->flags = flags; 25659 si->flags = flags;
25851 25660
@@ -25865,7 +25674,7 @@ diff -NurpP --minimal linux-3.4.57/net/socket.c linux-3.4.57-vs2.3.3.9/net/socke
25865 } 25674 }
25866 25675
25867 static inline int __sock_recvmsg(struct kiocb *iocb, struct socket *sock, 25676 static inline int __sock_recvmsg(struct kiocb *iocb, struct socket *sock,
25868@@ -1211,6 +1243,13 @@ int __sock_create(struct net *net, int f 25677@@ -1247,6 +1279,13 @@ int __sock_create(struct net *net, int f
25869 if (type < 0 || type >= SOCK_MAX) 25678 if (type < 0 || type >= SOCK_MAX)
25870 return -EINVAL; 25679 return -EINVAL;
25871 25680
@@ -25879,7 +25688,7 @@ diff -NurpP --minimal linux-3.4.57/net/socket.c linux-3.4.57-vs2.3.3.9/net/socke
25879 /* Compatibility. 25688 /* Compatibility.
25880 25689
25881 This uglymoron is moved from INET layer to here to avoid 25690 This uglymoron is moved from INET layer to here to avoid
25882@@ -1346,6 +1385,7 @@ SYSCALL_DEFINE3(socket, int, family, int 25691@@ -1381,6 +1420,7 @@ SYSCALL_DEFINE3(socket, int, family, int
25883 if (retval < 0) 25692 if (retval < 0)
25884 goto out; 25693 goto out;
25885 25694
@@ -25887,7 +25696,7 @@ diff -NurpP --minimal linux-3.4.57/net/socket.c linux-3.4.57-vs2.3.3.9/net/socke
25887 retval = sock_map_fd(sock, flags & (O_CLOEXEC | O_NONBLOCK)); 25696 retval = sock_map_fd(sock, flags & (O_CLOEXEC | O_NONBLOCK));
25888 if (retval < 0) 25697 if (retval < 0)
25889 goto out_release; 25698 goto out_release;
25890@@ -1387,10 +1427,12 @@ SYSCALL_DEFINE4(socketpair, int, family, 25699@@ -1422,10 +1462,12 @@ SYSCALL_DEFINE4(socketpair, int, family,
25891 err = sock_create(family, type, protocol, &sock1); 25700 err = sock_create(family, type, protocol, &sock1);
25892 if (err < 0) 25701 if (err < 0)
25893 goto out; 25702 goto out;
@@ -25900,52 +25709,51 @@ diff -NurpP --minimal linux-3.4.57/net/socket.c linux-3.4.57-vs2.3.3.9/net/socke
25900 25709
25901 err = sock1->ops->socketpair(sock1, sock2); 25710 err = sock1->ops->socketpair(sock1, sock2);
25902 if (err < 0) 25711 if (err < 0)
25903diff -NurpP --minimal linux-3.4.57/net/sunrpc/auth.c linux-3.4.57-vs2.3.3.9/net/sunrpc/auth.c 25712diff -NurpP --minimal linux-3.10.17/net/sunrpc/auth.c linux-3.10.17-vs2.3.6.6/net/sunrpc/auth.c
25904--- linux-3.4.57/net/sunrpc/auth.c 2011-10-24 16:45:34.000000000 +0000 25713--- linux-3.10.17/net/sunrpc/auth.c 2013-07-14 17:01:39.000000000 +0000
25905+++ linux-3.4.57-vs2.3.3.9/net/sunrpc/auth.c 2012-05-21 16:15:05.000000000 +0000 25714+++ linux-3.10.17-vs2.3.6.6/net/sunrpc/auth.c 2013-08-22 20:30:00.000000000 +0000
25906@@ -14,6 +14,7 @@ 25715@@ -15,6 +15,7 @@
25907 #include <linux/hash.h>
25908 #include <linux/sunrpc/clnt.h> 25716 #include <linux/sunrpc/clnt.h>
25717 #include <linux/sunrpc/gss_api.h>
25909 #include <linux/spinlock.h> 25718 #include <linux/spinlock.h>
25910+#include <linux/vs_tag.h> 25719+#include <linux/vs_tag.h>
25911 25720
25912 #ifdef RPC_DEBUG 25721 #ifdef RPC_DEBUG
25913 # define RPCDBG_FACILITY RPCDBG_AUTH 25722 # define RPCDBG_FACILITY RPCDBG_AUTH
25914@@ -427,6 +428,7 @@ rpcauth_lookupcred(struct rpc_auth *auth 25723@@ -553,6 +554,7 @@ rpcauth_lookupcred(struct rpc_auth *auth
25915 memset(&acred, 0, sizeof(acred)); 25724 memset(&acred, 0, sizeof(acred));
25916 acred.uid = cred->fsuid; 25725 acred.uid = cred->fsuid;
25917 acred.gid = cred->fsgid; 25726 acred.gid = cred->fsgid;
25918+ acred.tag = dx_current_tag(); 25727+ acred.tag = make_ktag(&init_user_ns, dx_current_tag());
25919 acred.group_info = get_group_info(((struct cred *)cred)->group_info); 25728 acred.group_info = get_group_info(((struct cred *)cred)->group_info);
25920 25729
25921 ret = auth->au_ops->lookup_cred(auth, &acred, flags); 25730 ret = auth->au_ops->lookup_cred(auth, &acred, flags);
25922@@ -467,6 +469,7 @@ rpcauth_bind_root_cred(struct rpc_task * 25731@@ -593,6 +595,7 @@ rpcauth_bind_root_cred(struct rpc_task *
25923 struct auth_cred acred = { 25732 struct auth_cred acred = {
25924 .uid = 0, 25733 .uid = GLOBAL_ROOT_UID,
25925 .gid = 0, 25734 .gid = GLOBAL_ROOT_GID,
25926+ .tag = dx_current_tag(), 25735+ .tag = KTAGT_INIT(dx_current_tag()),
25927 }; 25736 };
25928 25737
25929 dprintk("RPC: %5u looking up %s cred\n", 25738 dprintk("RPC: %5u looking up %s cred\n",
25930diff -NurpP --minimal linux-3.4.57/net/sunrpc/auth_unix.c linux-3.4.57-vs2.3.3.9/net/sunrpc/auth_unix.c 25739diff -NurpP --minimal linux-3.10.17/net/sunrpc/auth_unix.c linux-3.10.17-vs2.3.6.6/net/sunrpc/auth_unix.c
25931--- linux-3.4.57/net/sunrpc/auth_unix.c 2012-01-09 15:15:04.000000000 +0000 25740--- linux-3.10.17/net/sunrpc/auth_unix.c 2013-05-31 13:45:33.000000000 +0000
25932+++ linux-3.4.57-vs2.3.3.9/net/sunrpc/auth_unix.c 2012-05-21 16:15:05.000000000 +0000 25741+++ linux-3.10.17-vs2.3.6.6/net/sunrpc/auth_unix.c 2013-08-22 20:30:00.000000000 +0000
25933@@ -12,12 +12,14 @@ 25742@@ -13,11 +13,13 @@
25934 #include <linux/module.h>
25935 #include <linux/sunrpc/clnt.h> 25743 #include <linux/sunrpc/clnt.h>
25936 #include <linux/sunrpc/auth.h> 25744 #include <linux/sunrpc/auth.h>
25745 #include <linux/user_namespace.h>
25937+#include <linux/vs_tag.h> 25746+#include <linux/vs_tag.h>
25938 25747
25939 #define NFS_NGROUPS 16 25748 #define NFS_NGROUPS 16
25940 25749
25941 struct unx_cred { 25750 struct unx_cred {
25942 struct rpc_cred uc_base; 25751 struct rpc_cred uc_base;
25943 gid_t uc_gid; 25752+ ktag_t uc_tag;
25944+ tag_t uc_tag; 25753 kgid_t uc_gid;
25945 gid_t uc_gids[NFS_NGROUPS]; 25754 kgid_t uc_gids[NFS_NGROUPS];
25946 }; 25755 };
25947 #define uc_uid uc_base.cr_uid 25756@@ -80,6 +82,7 @@ unx_create_cred(struct rpc_auth *auth, s
25948@@ -78,6 +80,7 @@ unx_create_cred(struct rpc_auth *auth, s
25949 groups = NFS_NGROUPS; 25757 groups = NFS_NGROUPS;
25950 25758
25951 cred->uc_gid = acred->gid; 25759 cred->uc_gid = acred->gid;
@@ -25953,18 +25761,18 @@ diff -NurpP --minimal linux-3.4.57/net/sunrpc/auth_unix.c linux-3.4.57-vs2.3.3.9
25953 for (i = 0; i < groups; i++) 25761 for (i = 0; i < groups; i++)
25954 cred->uc_gids[i] = GROUP_AT(acred->group_info, i); 25762 cred->uc_gids[i] = GROUP_AT(acred->group_info, i);
25955 if (i < NFS_NGROUPS) 25763 if (i < NFS_NGROUPS)
25956@@ -119,7 +122,9 @@ unx_match(struct auth_cred *acred, struc 25764@@ -121,7 +124,9 @@ unx_match(struct auth_cred *acred, struc
25957 unsigned int i; 25765 unsigned int i;
25958 25766
25959 25767
25960- if (cred->uc_uid != acred->uid || cred->uc_gid != acred->gid) 25768- if (!uid_eq(cred->uc_uid, acred->uid) || !gid_eq(cred->uc_gid, acred->gid))
25961+ if (cred->uc_uid != acred->uid || 25769+ if (!uid_eq(cred->uc_uid, acred->uid) ||
25962+ cred->uc_gid != acred->gid || 25770+ !gid_eq(cred->uc_gid, acred->gid) ||
25963+ cred->uc_tag != acred->tag) 25771+ !tag_eq(cred->uc_tag, acred->tag))
25964 return 0; 25772 return 0;
25965 25773
25966 if (acred->group_info != NULL) 25774 if (acred->group_info != NULL)
25967@@ -145,7 +150,7 @@ unx_marshal(struct rpc_task *task, __be3 25775@@ -146,7 +151,7 @@ unx_marshal(struct rpc_task *task, __be3
25968 struct rpc_clnt *clnt = task->tk_client; 25776 struct rpc_clnt *clnt = task->tk_client;
25969 struct unx_cred *cred = container_of(task->tk_rqstp->rq_cred, struct unx_cred, uc_base); 25777 struct unx_cred *cred = container_of(task->tk_rqstp->rq_cred, struct unx_cred, uc_base);
25970 __be32 *base, *hold; 25778 __be32 *base, *hold;
@@ -25973,24 +25781,23 @@ diff -NurpP --minimal linux-3.4.57/net/sunrpc/auth_unix.c linux-3.4.57-vs2.3.3.9
25973 25781
25974 *p++ = htonl(RPC_AUTH_UNIX); 25782 *p++ = htonl(RPC_AUTH_UNIX);
25975 base = p++; 25783 base = p++;
25976@@ -155,9 +160,12 @@ unx_marshal(struct rpc_task *task, __be3 25784@@ -157,8 +162,11 @@ unx_marshal(struct rpc_task *task, __be3
25977 * Copy the UTS nodename captured when the client was created.
25978 */ 25785 */
25979 p = xdr_encode_array(p, clnt->cl_nodename, clnt->cl_nodelen); 25786 p = xdr_encode_array(p, clnt->cl_nodename, clnt->cl_nodelen);
25980+ tag = task->tk_client->cl_tag;
25981 25787
25982- *p++ = htonl((u32) cred->uc_uid); 25788- *p++ = htonl((u32) from_kuid(&init_user_ns, cred->uc_uid));
25983- *p++ = htonl((u32) cred->uc_gid); 25789- *p++ = htonl((u32) from_kgid(&init_user_ns, cred->uc_gid));
25984+ *p++ = htonl((u32) TAGINO_UID(tag, 25790+ tag = task->tk_client->cl_tag;
25985+ cred->uc_uid, cred->uc_tag)); 25791+ *p++ = htonl((u32) from_kuid(&init_user_ns,
25986+ *p++ = htonl((u32) TAGINO_GID(tag, 25792+ TAGINO_KUID(tag, cred->uc_uid, cred->uc_tag)));
25987+ cred->uc_gid, cred->uc_tag)); 25793+ *p++ = htonl((u32) from_kgid(&init_user_ns,
25794+ TAGINO_KGID(tag, cred->uc_gid, cred->uc_tag)));
25988 hold = p++; 25795 hold = p++;
25989 for (i = 0; i < 16 && cred->uc_gids[i] != (gid_t) NOGROUP; i++) 25796 for (i = 0; i < 16 && gid_valid(cred->uc_gids[i]); i++)
25990 *p++ = htonl((u32) cred->uc_gids[i]); 25797 *p++ = htonl((u32) from_kgid(&init_user_ns, cred->uc_gids[i]));
25991diff -NurpP --minimal linux-3.4.57/net/sunrpc/clnt.c linux-3.4.57-vs2.3.3.9/net/sunrpc/clnt.c 25798diff -NurpP --minimal linux-3.10.17/net/sunrpc/clnt.c linux-3.10.17-vs2.3.6.6/net/sunrpc/clnt.c
25992--- linux-3.4.57/net/sunrpc/clnt.c 2013-08-13 14:13:48.000000000 +0000 25799--- linux-3.10.17/net/sunrpc/clnt.c 2013-10-25 15:17:47.000000000 +0000
25993+++ linux-3.4.57-vs2.3.3.9/net/sunrpc/clnt.c 2013-02-11 23:37:30.000000000 +0000 25800+++ linux-3.10.17-vs2.3.6.6/net/sunrpc/clnt.c 2013-08-22 20:30:00.000000000 +0000
25994@@ -31,6 +31,7 @@ 25801@@ -31,6 +31,7 @@
25995 #include <linux/in6.h> 25802 #include <linux/in6.h>
25996 #include <linux/un.h> 25803 #include <linux/un.h>
@@ -25998,8 +25805,8 @@ diff -NurpP --minimal linux-3.4.57/net/sunrpc/clnt.c linux-3.4.57-vs2.3.3.9/net/
25998+#include <linux/vs_cvirt.h> 25805+#include <linux/vs_cvirt.h>
25999 25806
26000 #include <linux/sunrpc/clnt.h> 25807 #include <linux/sunrpc/clnt.h>
26001 #include <linux/sunrpc/rpc_pipe_fs.h> 25808 #include <linux/sunrpc/addr.h>
26002@@ -483,6 +484,9 @@ struct rpc_clnt *rpc_create(struct rpc_c 25809@@ -486,6 +487,9 @@ struct rpc_clnt *rpc_create(struct rpc_c
26003 if (!(args->flags & RPC_CLNT_CREATE_QUIET)) 25810 if (!(args->flags & RPC_CLNT_CREATE_QUIET))
26004 clnt->cl_chatty = 1; 25811 clnt->cl_chatty = 1;
26005 25812
@@ -26009,9 +25816,9 @@ diff -NurpP --minimal linux-3.4.57/net/sunrpc/clnt.c linux-3.4.57-vs2.3.3.9/net/
26009 return clnt; 25816 return clnt;
26010 } 25817 }
26011 EXPORT_SYMBOL_GPL(rpc_create); 25818 EXPORT_SYMBOL_GPL(rpc_create);
26012diff -NurpP --minimal linux-3.4.57/net/unix/af_unix.c linux-3.4.57-vs2.3.3.9/net/unix/af_unix.c 25819diff -NurpP --minimal linux-3.10.17/net/unix/af_unix.c linux-3.10.17-vs2.3.6.6/net/unix/af_unix.c
26013--- linux-3.4.57/net/unix/af_unix.c 2013-08-13 14:13:49.000000000 +0000 25820--- linux-3.10.17/net/unix/af_unix.c 2013-07-14 17:01:39.000000000 +0000
26014+++ linux-3.4.57-vs2.3.3.9/net/unix/af_unix.c 2013-07-14 13:38:40.000000000 +0000 25821+++ linux-3.10.17-vs2.3.6.6/net/unix/af_unix.c 2013-08-22 20:30:00.000000000 +0000
26015@@ -114,6 +114,8 @@ 25822@@ -114,6 +114,8 @@
26016 #include <linux/mount.h> 25823 #include <linux/mount.h>
26017 #include <net/checksum.h> 25824 #include <net/checksum.h>
@@ -26019,9 +25826,9 @@ diff -NurpP --minimal linux-3.4.57/net/unix/af_unix.c linux-3.4.57-vs2.3.3.9/net
26019+#include <linux/vs_context.h> 25826+#include <linux/vs_context.h>
26020+#include <linux/vs_limit.h> 25827+#include <linux/vs_limit.h>
26021 25828
26022 struct hlist_head unix_socket_table[UNIX_HASH_SIZE + 1]; 25829 struct hlist_head unix_socket_table[2 * UNIX_HASH_SIZE];
26023 EXPORT_SYMBOL_GPL(unix_socket_table); 25830 EXPORT_SYMBOL_GPL(unix_socket_table);
26024@@ -261,6 +263,8 @@ static struct sock *__unix_find_socket_b 25831@@ -270,6 +272,8 @@ static struct sock *__unix_find_socket_b
26025 if (!net_eq(sock_net(s), net)) 25832 if (!net_eq(sock_net(s), net))
26026 continue; 25833 continue;
26027 25834
@@ -26030,28 +25837,27 @@ diff -NurpP --minimal linux-3.4.57/net/unix/af_unix.c linux-3.4.57-vs2.3.3.9/net
26030 if (u->addr->len == len && 25837 if (u->addr->len == len &&
26031 !memcmp(u->addr->name, sunname, len)) 25838 !memcmp(u->addr->name, sunname, len))
26032 goto found; 25839 goto found;
26033@@ -2265,6 +2269,8 @@ static struct sock *unix_seq_idx(struct 25840@@ -2257,6 +2261,8 @@ static struct sock *unix_from_bucket(str
26034 for (s = first_unix_socket(&iter->i); s; s = next_unix_socket(&iter->i, s)) { 25841 for (sk = sk_head(&unix_socket_table[bucket]); sk; sk = sk_next(sk)) {
26035 if (sock_net(s) != seq_file_net(seq)) 25842 if (sock_net(sk) != seq_file_net(seq))
26036 continue; 25843 continue;
26037+ if (!nx_check(s->sk_nid, VS_WATCH_P | VS_IDENT)) 25844+ if (!nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT))
26038+ continue; 25845+ continue;
26039 if (off == pos) 25846 if (++count == offset)
26040 return s; 25847 break;
26041 ++off; 25848 }
26042@@ -2289,7 +2295,8 @@ static void *unix_seq_next(struct seq_fi 25849@@ -2274,6 +2280,8 @@ static struct sock *unix_next_socket(str
26043 sk = first_unix_socket(&iter->i); 25850 sk = sk_next(sk);
26044 else 25851 if (!sk)
26045 sk = next_unix_socket(&iter->i, sk); 25852 goto next_bucket;
26046- while (sk && (sock_net(sk) != seq_file_net(seq))) 25853+ if (!nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT))
26047+ while (sk && (sock_net(sk) != seq_file_net(seq) || 25854+ continue;
26048+ !nx_check(sk->sk_nid, VS_WATCH_P | VS_IDENT))) 25855 if (sock_net(sk) == seq_file_net(seq))
26049 sk = next_unix_socket(&iter->i, sk); 25856 return sk;
26050 return sk; 25857 }
26051 } 25858diff -NurpP --minimal linux-3.10.17/scripts/checksyscalls.sh linux-3.10.17-vs2.3.6.6/scripts/checksyscalls.sh
26052diff -NurpP --minimal linux-3.4.57/scripts/checksyscalls.sh linux-3.4.57-vs2.3.3.9/scripts/checksyscalls.sh 25859--- linux-3.10.17/scripts/checksyscalls.sh 2012-12-11 03:30:57.000000000 +0000
26053--- linux-3.4.57/scripts/checksyscalls.sh 2012-03-19 18:47:34.000000000 +0000 25860+++ linux-3.10.17-vs2.3.6.6/scripts/checksyscalls.sh 2013-08-22 20:30:00.000000000 +0000
26054+++ linux-3.4.57-vs2.3.3.9/scripts/checksyscalls.sh 2012-05-21 16:15:05.000000000 +0000
26055@@ -193,7 +193,6 @@ cat << EOF 25861@@ -193,7 +193,6 @@ cat << EOF
26056 #define __IGNORE_afs_syscall 25862 #define __IGNORE_afs_syscall
26057 #define __IGNORE_getpmsg 25863 #define __IGNORE_getpmsg
@@ -26060,24 +25866,24 @@ diff -NurpP --minimal linux-3.4.57/scripts/checksyscalls.sh linux-3.4.57-vs2.3.3
26060 EOF 25866 EOF
26061 } 25867 }
26062 25868
26063diff -NurpP --minimal linux-3.4.57/security/commoncap.c linux-3.4.57-vs2.3.3.9/security/commoncap.c 25869diff -NurpP --minimal linux-3.10.17/security/commoncap.c linux-3.10.17-vs2.3.6.6/security/commoncap.c
26064--- linux-3.4.57/security/commoncap.c 2012-05-21 16:07:41.000000000 +0000 25870--- linux-3.10.17/security/commoncap.c 2013-05-31 13:45:34.000000000 +0000
26065+++ linux-3.4.57-vs2.3.3.9/security/commoncap.c 2012-05-21 16:15:05.000000000 +0000 25871+++ linux-3.10.17-vs2.3.6.6/security/commoncap.c 2013-08-22 20:30:00.000000000 +0000
26066@@ -76,14 +76,20 @@ int cap_netlink_send(struct sock *sk, st 25872@@ -76,6 +76,7 @@ int cap_netlink_send(struct sock *sk, st
26067 int cap_capable(const struct cred *cred, struct user_namespace *targ_ns, 25873 int cap_capable(const struct cred *cred, struct user_namespace *targ_ns,
26068 int cap, int audit) 25874 int cap, int audit)
26069 { 25875 {
26070+ struct vx_info *vxi = current_vx_info(); /* FIXME: get vxi from cred? */ 25876+ struct vx_info *vxi = current_vx_info(); /* FIXME: get vxi from cred? */
26071+ 25877 struct user_namespace *ns = targ_ns;
26072 for (;;) {
26073 /* The creator of the user namespace has all caps. */
26074 if (targ_ns != &init_user_ns && targ_ns->creator == cred->user)
26075 return 0;
26076 25878
25879 /* See if cred has the capability in the target user namespace
25880@@ -84,8 +85,12 @@ int cap_capable(const struct cred *cred,
25881 */
25882 for (;;) {
26077 /* Do we have the necessary capabilities? */ 25883 /* Do we have the necessary capabilities? */
26078- if (targ_ns == cred->user->user_ns) 25884- if (ns == cred->user_ns)
26079- return cap_raised(cred->cap_effective, cap) ? 0 : -EPERM; 25885- return cap_raised(cred->cap_effective, cap) ? 0 : -EPERM;
26080+ if (targ_ns == cred->user->user_ns) { 25886+ if (ns == cred->user_ns) {
26081+ if (vx_info_flags(vxi, VXF_STATE_SETUP, 0) && 25887+ if (vx_info_flags(vxi, VXF_STATE_SETUP, 0) &&
26082+ cap_raised(cred->cap_effective, cap)) 25888+ cap_raised(cred->cap_effective, cap))
26083+ return 0; 25889+ return 0;
@@ -26085,8 +25891,8 @@ diff -NurpP --minimal linux-3.4.57/security/commoncap.c linux-3.4.57-vs2.3.3.9/s
26085+ } 25891+ }
26086 25892
26087 /* Have we tried all of the parent namespaces? */ 25893 /* Have we tried all of the parent namespaces? */
26088 if (targ_ns == &init_user_ns) 25894 if (ns == &init_user_ns)
26089@@ -612,7 +618,7 @@ int cap_inode_setxattr(struct dentry *de 25895@@ -628,7 +633,7 @@ int cap_inode_setxattr(struct dentry *de
26090 25896
26091 if (!strncmp(name, XATTR_SECURITY_PREFIX, 25897 if (!strncmp(name, XATTR_SECURITY_PREFIX,
26092 sizeof(XATTR_SECURITY_PREFIX) - 1) && 25898 sizeof(XATTR_SECURITY_PREFIX) - 1) &&
@@ -26095,7 +25901,7 @@ diff -NurpP --minimal linux-3.4.57/security/commoncap.c linux-3.4.57-vs2.3.3.9/s
26095 return -EPERM; 25901 return -EPERM;
26096 return 0; 25902 return 0;
26097 } 25903 }
26098@@ -638,7 +644,7 @@ int cap_inode_removexattr(struct dentry 25904@@ -654,7 +659,7 @@ int cap_inode_removexattr(struct dentry
26099 25905
26100 if (!strncmp(name, XATTR_SECURITY_PREFIX, 25906 if (!strncmp(name, XATTR_SECURITY_PREFIX,
26101 sizeof(XATTR_SECURITY_PREFIX) - 1) && 25907 sizeof(XATTR_SECURITY_PREFIX) - 1) &&
@@ -26104,10 +25910,10 @@ diff -NurpP --minimal linux-3.4.57/security/commoncap.c linux-3.4.57-vs2.3.3.9/s
26104 return -EPERM; 25910 return -EPERM;
26105 return 0; 25911 return 0;
26106 } 25912 }
26107diff -NurpP --minimal linux-3.4.57/security/selinux/hooks.c linux-3.4.57-vs2.3.3.9/security/selinux/hooks.c 25913diff -NurpP --minimal linux-3.10.17/security/selinux/hooks.c linux-3.10.17-vs2.3.6.6/security/selinux/hooks.c
26108--- linux-3.4.57/security/selinux/hooks.c 2013-08-13 14:13:49.000000000 +0000 25914--- linux-3.10.17/security/selinux/hooks.c 2013-07-14 17:01:42.000000000 +0000
26109+++ linux-3.4.57-vs2.3.3.9/security/selinux/hooks.c 2012-09-01 08:50:49.000000000 +0000 25915+++ linux-3.10.17-vs2.3.6.6/security/selinux/hooks.c 2013-08-22 20:30:00.000000000 +0000
26110@@ -66,7 +66,6 @@ 25916@@ -67,7 +67,6 @@
26111 #include <linux/dccp.h> 25917 #include <linux/dccp.h>
26112 #include <linux/quota.h> 25918 #include <linux/quota.h>
26113 #include <linux/un.h> /* for Unix socket types */ 25919 #include <linux/un.h> /* for Unix socket types */