aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/hugetlb.h
diff options
context:
space:
mode:
authorNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>2010-09-08 10:19:32 +0900
committerAndi Kleen <ak@linux.intel.com>2010-10-08 09:32:44 +0200
commit998b4382c1d75a6fd3b0e334dae3ab33bd074d99 (patch)
tree666c8eaad844df0447870f1e6fada4f0fb8007cd /include/linux/hugetlb.h
parent6b0cd00bc396daf5c2dcf17a8d82055335341f46 (diff)
downloadkernel_samsung_smdk4412-998b4382c1d75a6fd3b0e334dae3ab33bd074d99.zip
kernel_samsung_smdk4412-998b4382c1d75a6fd3b0e334dae3ab33bd074d99.tar.gz
kernel_samsung_smdk4412-998b4382c1d75a6fd3b0e334dae3ab33bd074d99.tar.bz2
hugetlb: fix metadata corruption in hugetlb_fault()
Since the PageHWPoison() check is for avoiding hwpoisoned page remained in pagecache mapping to the process, it should be done in "found in pagecache" branch, not in the common path. Otherwise, metadata corruption occurs if memory failure happens between alloc_huge_page() and lock_page() because page fault fails with metadata changes remained (such as refcount, mapcount, etc.) This patch moves the check to "found in pagecache" branch and fix the problem. ChangeLog since v2: - remove retry check in "new allocation" path. - make description more detailed - change patch name from "HWPOISON, hugetlb: move PG_HWPoison bit check" Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com> Acked-by: Mel Gorman <mel@csn.ul.ie> Reviewed-by: Wu Fengguang <fengguang.wu@intel.com> Reviewed-by: Christoph Lameter <cl@linux.com> Signed-off-by: Andi Kleen <ak@linux.intel.com>
Diffstat (limited to 'include/linux/hugetlb.h')
0 files changed, 0 insertions, 0 deletions