int vm_brk_flags(unsigned long addr, unsigned long request, unsigned long flags)
{
struct mm_struct *mm = current->mm;
+ struct vm_area_struct *vma = NULL;
unsigned long len;
int ret;
bool populate;
if (mmap_write_lock_killable(mm))
return -EINTR;
- ret = do_brk_flags(NULL, addr, len, flags);
+ ret = do_brk_flags(&vma, addr, len, flags);
populate = ((mm->def_flags & VM_LOCKED) != 0);
mmap_write_unlock(mm);
if (populate && !ret)
- mm_populate(addr, len);
+ mm_populate_vma(vma, addr, addr + len);
return ret;
}
EXPORT_SYMBOL(vm_brk_flags);