summaryrefslogtreecommitdiffstats
path: root/mm/khugepaged.c
diff options
context:
space:
mode:
authorLinus Torvalds2017-11-29 18:01:01 +0100
committerLinus Torvalds2017-11-29 18:01:01 +0100
commitf55e1014f9e567d830eb3a7f57d879a34872af4b (patch)
tree7d3b834a71f6fbaec70bb4a5700424be15e9e1d3 /mm/khugepaged.c
parentMerge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert... (diff)
downloadkernel-qcow2-linux-f55e1014f9e567d830eb3a7f57d879a34872af4b.tar.gz
kernel-qcow2-linux-f55e1014f9e567d830eb3a7f57d879a34872af4b.tar.xz
kernel-qcow2-linux-f55e1014f9e567d830eb3a7f57d879a34872af4b.zip
Revert "mm, thp: Do not make pmd/pud dirty without a reason"
This reverts commit 152e93af3cfe2d29d8136cc0a02a8612507136ee. It was a nice cleanup in theory, but as Nicolai Stange points out, we do need to make the page dirty for the copy-on-write case even when we didn't end up making it writable, since the dirty bit is what we use to check that we've gone through a COW cycle. Reported-by: Michal Hocko <mhocko@kernel.org> Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/khugepaged.c')
-rw-r--r--mm/khugepaged.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/khugepaged.c b/mm/khugepaged.c
index db43dc8a8ae6..ea4ff259b671 100644
--- a/mm/khugepaged.c
+++ b/mm/khugepaged.c
@@ -1057,7 +1057,7 @@ static void collapse_huge_page(struct mm_struct *mm,
pgtable = pmd_pgtable(_pmd);
_pmd = mk_huge_pmd(new_page, vma->vm_page_prot);
- _pmd = maybe_pmd_mkwrite(_pmd, vma, false);
+ _pmd = maybe_pmd_mkwrite(pmd_mkdirty(_pmd), vma);
/*
* spin_lock() below is not the equivalent of smp_wmb(), so