From: Arkadiusz Miƛkiewicz Date: Thu, 2 Feb 2017 18:09:25 +0000 (+0100) Subject: - up to 4.9.7 X-Git-Tag: auto/th/kernel-rt-4.9.7-1~1 X-Git-Url: http://git.pld-linux.org/gitweb.cgi?a=commitdiff_plain;h=d72932882f41fa358f6cabe07ba340848905c815;p=packages%2Fkernel.git - up to 4.9.7 --- diff --git a/kernel-small_fixes.patch b/kernel-small_fixes.patch index a5fbdf6a..1bc4a8f8 100644 --- a/kernel-small_fixes.patch +++ b/kernel-small_fixes.patch @@ -64,54 +64,4 @@ index 7a30b8f..dbeddd9 100644 if (next_id % mp->m_quotainfo->qi_dqperchunk) { *id = next_id; -From: Brian Foster -Subject: [PATCH] xfs: prevent quotacheck from overloading inode lru - -Quotacheck runs at mount time in situations where quota accounting must -be recalculated. In doing so, it uses bulkstat to visit every inode in -the filesystem. Historically, every inode processed during quotacheck -was released and immediately tagged for reclaim because quotacheck runs -before the superblock is marked active by the VFS. In other words, -the final iput() lead to an immediate ->destroy_inode() call, which -allowed the XFS background reclaim worker to start reclaiming inodes. - -Commit 17c12bcd3 ("xfs: when replaying bmap operations, don't let -unlinked inodes get reaped") marks the XFS superblock active sooner as -part of the mount process to support caching inodes processed during log -recovery. This occurs before quotacheck and thus means all inodes -processed by quotacheck are inserted to the LRU on release. The -s_umount lock is held until the mount has completed and thus prevents -the shrinkers from operating on the sb. This means that quotacheck can -excessively populate the inode LRU and lead to OOM conditions on systems -without sufficient RAM. - -Update the quotacheck bulkstat handler to set XFS_IGET_DONTCACHE on -inodes processed by quotacheck. This causes ->drop_inode() to return 1 -and in turn causes iput_final() to evict the inode. This preserves the -original quotacheck behavior and prevents it from overloading the LRU -and running out of memory. - -CC: stable@vger.kernel.org # v4.9 -Reported-by: Martin Svec -Signed-off-by: Brian Foster ---- - fs/xfs/xfs_qm.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c -index 45e50ea..b669b12 100644 ---- a/fs/xfs/xfs_qm.c -+++ b/fs/xfs/xfs_qm.c -@@ -1177,7 +1177,8 @@ xfs_qm_dqusage_adjust( - * the case in all other instances. It's OK that we do this because - * quotacheck is done only at mount time. - */ -- error = xfs_iget(mp, NULL, ino, 0, XFS_ILOCK_EXCL, &ip); -+ error = xfs_iget(mp, NULL, ino, XFS_IGET_DONTCACHE, XFS_ILOCK_EXCL, -+ &ip); - if (error) { - *res = BULKSTAT_RV_NOTHING; - return error; --- -2.7.4 diff --git a/kernel.spec b/kernel.spec index 78d9408c..985a7dad 100644 --- a/kernel.spec +++ b/kernel.spec @@ -73,7 +73,7 @@ %define rel 1 %define basever 4.9 -%define postver .6 +%define postver .7 # define this to '-%{basever}' for longterm branch %define versuffix %{nil} @@ -125,7 +125,7 @@ Source0: https://www.kernel.org/pub/linux/kernel/v4.x/linux-%{basever}.tar.xz # Source0-md5: 0a68ef3615c64bd5ee54a3320e46667d %if "%{postver}" != ".0" Patch0: https://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz -# Patch0-md5: 864724f2aad24886f464e047dd99ca4e +# Patch0-md5: e1f02eaa546e2f2c46b4c89b2b3c282f %endif Source1: kernel.sysconfig