summaryrefslogtreecommitdiff
path: root/mm/huge_memory.c
diff options
context:
space:
mode:
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>2013-02-04 14:28:42 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-05 20:38:46 +1100
commit85facf2570698ca6082326df4d63edebc9c9d96e (patch)
treee70ca5a10d99ceb08afbbf3d7db754a5ffbaf8ab /mm/huge_memory.c
parenta9bae189542e71f91e61a4428adf6e5a7dfe8063 (diff)
downloadkernel-common-85facf2570698ca6082326df4d63edebc9c9d96e.tar.gz
kernel-common-85facf2570698ca6082326df4d63edebc9c9d96e.tar.bz2
kernel-common-85facf2570698ca6082326df4d63edebc9c9d96e.zip
thp: avoid dumping huge zero page
No reason to preserve the huge zero page in core dumps. Reported-by: Michel Lespinasse <walken@google.com> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Reviewed-by: Michel Lespinasse <walken@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/huge_memory.c')
-rw-r--r--mm/huge_memory.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 6001ee6347a9..b5783d81eda9 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1257,6 +1257,10 @@ struct page *follow_trans_huge_pmd(struct vm_area_struct *vma,
if (flags & FOLL_WRITE && !pmd_write(*pmd))
goto out;
+ /* Avoid dumping huge zero page */
+ if ((flags & FOLL_DUMP) && is_huge_zero_pmd(*pmd))
+ return ERR_PTR(-EFAULT);
+
page = pmd_page(*pmd);
VM_BUG_ON(!PageHead(page));
if (flags & FOLL_TOUCH) {