Subject: linux 3.10.83 and patch-3.10.69-vs2.3.6.9.diff
From: Corey Wright <undefined@pobox.com>
Date: Sat, 4 Jul 2015 13:12:41 -0500
Sat, 4 Jul 2015 13:12:41 -0500
applying patch-3.10.69-vs2.3.6.9.diff to linux 3.10.83 fails in patching (in
addition to the patch failure that was previously introduced with linux
3.10.76 [1][2]).

patching file fs/file_table.c
Hunk #2 succeeded at 139 (offset -3 lines).
Hunk #3 succeeded at 258 (offset -3 lines).
Hunk #4 FAILED at 351.
1 out of 4 hunks FAILED -- saving rejects to file fs/file_table.c.rej

upstream commit
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-3.10.y&id=68c8a7ae
removed a source code line and invalidated the patch hunk context.

the attached patch accounts for the upstream change.

instructions:
1. acquire linux-3.10.76
2. apply patch-3.10.69-vs2.3.6.9.diff
3. manually fix the Makefile reject (EXTRAVERSION)
4. apply patch-3.10.69-76-vs2.3.6.9.diff [3]
4. apply the attached patch-3.10.69-83-vs2.3.6.9.diff

i've successfully built the resulting kernel and tested it in virtualbox
against testme.sh and testfs.sh and started-entered-exited-stopped a vserver
guest, though i encourage the community to review and test.

[1] http://list.linux-vserver.org/archive?mss:6946:201504:hollohhekngigfmegnhk
[2] http://archives.linux-vserver.org/201504/0012.html
[3]
http://archives.linux-vserver.org/201504/att-0012/patch-3.10.69-76-vs2.3.6.9.diff

corey
--
undefined@pobox.com


Removal of line of code in Linux 3.10.83 invalidated hunk context in
patch-3.10.69-vs2.3.6.9.diff.

Conflicting upstream commit:
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-3.10.y&id=68c8a7ae

diff -urNpd linux-3.10.83-vs2.3.6.9~/fs/file_table.c linux-3.10.83-vs2.3.6.9/fs/file_table.c
--- linux-3.10.83-vs2.3.6.9~/fs/file_table.c	2015-07-04 09:20:00.011892743 -0500
+++ linux-3.10.83-vs2.3.6.9/fs/file_table.c	2015-07-04 11:20:18.333076337 -0500
@@ -341,6 +341,8 @@ void put_filp(struct file *file)
 {
 	if (atomic_long_dec_and_test(&file->f_count)) {
 		security_file_free(file);
+		vx_files_dec(file);
+		file->f_xid = 0;
 		file_free(file);
 	}
 }