summaryrefslogtreecommitdiff
path: root/kernel-small_fixes.patch
diff options
context:
space:
mode:
authorArkadiusz Miśkiewicz2017-02-02 18:09:25 (GMT)
committerArkadiusz Miśkiewicz2017-02-02 18:09:25 (GMT)
commitd72932882f41fa358f6cabe07ba340848905c815 (patch)
treec97637e9cea3f4556eb1fa551d0ca1d5b8a29e1c /kernel-small_fixes.patch
parent53badc7f4955f109c2815063203b36e44c7918e2 (diff)
downloadkernel-d72932882f41fa358f6cabe07ba340848905c815.zip
kernel-d72932882f41fa358f6cabe07ba340848905c815.tar.gz
- up to 4.9.7
Diffstat (limited to 'kernel-small_fixes.patch')
-rw-r--r--kernel-small_fixes.patch50
1 files changed, 0 insertions, 50 deletions
diff --git a/kernel-small_fixes.patch b/kernel-small_fixes.patch
index a5fbdf6..1bc4a8f 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 <bfoster@redhat.com>
-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 <martin.svec@zoner.cz>
-Signed-off-by: Brian Foster <bfoster@redhat.com>
----
- 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