mm: fix vm_brk_flags() to not bail out while holding lock
[linux-block.git] / mm / mmap.c
index b56a7f0c9f856509a7a17eac92c71f2ce30b659c..7ed286662839d1f851f2bf765ab7eb80b9077862 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -3143,13 +3143,13 @@ int vm_brk_flags(unsigned long addr, unsigned long request, unsigned long flags)
        if (!len)
                return 0;
 
-       if (mmap_write_lock_killable(mm))
-               return -EINTR;
-
        /* Until we need other flags, refuse anything except VM_EXEC. */
        if ((flags & (~VM_EXEC)) != 0)
                return -EINVAL;
 
+       if (mmap_write_lock_killable(mm))
+               return -EINTR;
+
        ret = check_brk_limits(addr, len);
        if (ret)
                goto limits_failed;