]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
convert do_brk_flags to use prealloc
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Thu, 21 Apr 2022 22:02:08 +0000 (18:02 -0400)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Thu, 21 Apr 2022 22:35:15 +0000 (18:35 -0400)
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
mm/mmap.c

index f38e998b8c328861381e8937eaf6b96731b8ed63..784c325288eb3823a4380db82a9e018e4b61aee3 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -3035,6 +3035,9 @@ static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma,
        vma->vm_pgoff = addr >> PAGE_SHIFT;
        vma->vm_flags = flags;
        vma->vm_page_prot = vm_get_page_prot(flags);
+       if (mas_preallocate(mas, vma, GFP_KERNEL))
+               goto mas_alloc_fail;
+
        if (vma->vm_file) {
                mapping = vma->vm_file->f_mapping;
                i_mmap_lock_write(mapping);
@@ -3056,6 +3059,8 @@ out:
        validate_mm(mm);
        return 0;
 
+mas_alloc_fail:
+       vm_area_free(vma);
 vma_alloc_fail:
        vm_unacct_memory(len >> PAGE_SHIFT);
        return -ENOMEM;