diff options
Diffstat (limited to 'mm/khugepaged.c')
-rw-r--r-- | mm/khugepaged.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 349b4782d9f4..f426d42d629d 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c | |||
@@ -597,17 +597,17 @@ static int __collapse_huge_page_isolate(struct vm_area_struct *vma, | |||
597 | mmu_notifier_test_young(vma->vm_mm, address)) | 597 | mmu_notifier_test_young(vma->vm_mm, address)) |
598 | referenced++; | 598 | referenced++; |
599 | } | 599 | } |
600 | if (likely(writable)) { | 600 | |
601 | if (likely(referenced)) { | 601 | if (unlikely(!writable)) { |
602 | result = SCAN_SUCCEED; | ||
603 | trace_mm_collapse_huge_page_isolate(page, none_or_zero, | ||
604 | referenced, writable, result); | ||
605 | return 1; | ||
606 | } | ||
607 | } else { | ||
608 | result = SCAN_PAGE_RO; | 602 | result = SCAN_PAGE_RO; |
603 | } else if (unlikely(!referenced)) { | ||
604 | result = SCAN_LACK_REFERENCED_PAGE; | ||
605 | } else { | ||
606 | result = SCAN_SUCCEED; | ||
607 | trace_mm_collapse_huge_page_isolate(page, none_or_zero, | ||
608 | referenced, writable, result); | ||
609 | return 1; | ||
609 | } | 610 | } |
610 | |||
611 | out: | 611 | out: |
612 | release_pte_pages(pte, _pte); | 612 | release_pte_pages(pte, _pte); |
613 | trace_mm_collapse_huge_page_isolate(page, none_or_zero, | 613 | trace_mm_collapse_huge_page_isolate(page, none_or_zero, |