|
@@ -1265,12 +1265,7 @@ out:
|
|
|
mm->total_vm += len >> PAGE_SHIFT;
|
|
|
vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
|
|
|
if (vm_flags & VM_LOCKED) {
|
|
|
- /*
|
|
|
- * makes pages present; downgrades, drops, reacquires mmap_sem
|
|
|
- */
|
|
|
long nr_pages = mlock_vma_pages_range(vma, addr, addr + len);
|
|
|
- if (nr_pages < 0)
|
|
|
- return nr_pages; /* vma gone! */
|
|
|
mm->locked_vm += (len >> PAGE_SHIFT) - nr_pages;
|
|
|
} else if ((flags & MAP_POPULATE) && !(flags & MAP_NONBLOCK))
|
|
|
make_pages_present(addr, addr + len);
|
|
@@ -1754,8 +1749,7 @@ find_extend_vma(struct mm_struct *mm, unsigned long addr)
|
|
|
if (!prev || expand_stack(prev, addr))
|
|
|
return NULL;
|
|
|
if (prev->vm_flags & VM_LOCKED) {
|
|
|
- if (mlock_vma_pages_range(prev, addr, prev->vm_end) < 0)
|
|
|
- return NULL; /* vma gone! */
|
|
|
+ mlock_vma_pages_range(prev, addr, prev->vm_end);
|
|
|
}
|
|
|
return prev;
|
|
|
}
|
|
@@ -1783,8 +1777,7 @@ find_extend_vma(struct mm_struct * mm, unsigned long addr)
|
|
|
if (expand_stack(vma, addr))
|
|
|
return NULL;
|
|
|
if (vma->vm_flags & VM_LOCKED) {
|
|
|
- if (mlock_vma_pages_range(vma, addr, start) < 0)
|
|
|
- return NULL; /* vma gone! */
|
|
|
+ mlock_vma_pages_range(vma, addr, start);
|
|
|
}
|
|
|
return vma;
|
|
|
}
|