if (security_vm_enough_memory_mm(mm, grow))
                return -ENOMEM;
 
-       /* Ok, everything looks good - let it rip */
-       if (vma->vm_flags & VM_LOCKED)
-               mm->locked_vm += grow;
-       vm_stat_account(mm, vma->vm_flags, vma->vm_file, grow);
        return 0;
 }
 
                                 * against concurrent vma expansions.
                                 */
                                spin_lock(&vma->vm_mm->page_table_lock);
+                               if (vma->vm_flags & VM_LOCKED)
+                                       vma->vm_mm->locked_vm += grow;
+                               vm_stat_account(vma->vm_mm, vma->vm_flags,
+                                               vma->vm_file, grow);
                                anon_vma_interval_tree_pre_update_vma(vma);
                                vma->vm_end = address;
                                anon_vma_interval_tree_post_update_vma(vma);
                                 * against concurrent vma expansions.
                                 */
                                spin_lock(&vma->vm_mm->page_table_lock);
+                               if (vma->vm_flags & VM_LOCKED)
+                                       vma->vm_mm->locked_vm += grow;
+                               vm_stat_account(vma->vm_mm, vma->vm_flags,
+                                               vma->vm_file, grow);
                                anon_vma_interval_tree_pre_update_vma(vma);
                                vma->vm_start = address;
                                vma->vm_pgoff -= grow;