diff options
Diffstat (limited to 'mm/hugetlb.c')
-rw-r--r-- | mm/hugetlb.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 999fb0aef8f1..9cc773483624 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -3202,6 +3202,14 @@ static void unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma, | |||
3202 | continue; | 3202 | continue; |
3203 | 3203 | ||
3204 | /* | 3204 | /* |
3205 | * Shared VMAs have their own reserves and do not affect | ||
3206 | * MAP_PRIVATE accounting but it is possible that a shared | ||
3207 | * VMA is using the same page so check and skip such VMAs. | ||
3208 | */ | ||
3209 | if (iter_vma->vm_flags & VM_MAYSHARE) | ||
3210 | continue; | ||
3211 | |||
3212 | /* | ||
3205 | * Unmap the page from other VMAs without their own reserves. | 3213 | * Unmap the page from other VMAs without their own reserves. |
3206 | * They get marked to be SIGKILLed if they fault in these | 3214 | * They get marked to be SIGKILLed if they fault in these |
3207 | * areas. This is because a future no-page fault on this VMA | 3215 | * areas. This is because a future no-page fault on this VMA |