diff --git a/mm/mmap.c b/mm/mmap.c index 9a61b1ce8b76..2a8e7396413a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -801,7 +801,8 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, } if (end != vma->vm_end) { if (vma->vm_end > end) { - if (adjust_next >= 0 && !insert) { + if ((vma->vm_end + adjust_next != end) && + (!insert || (insert->vm_start != end))) { vma_mas_szero(&mas, end, vma->vm_end); mas_reset(&mas); VM_WARN_ON(insert &&