mmap locking API: use coccinelle to convert mmap_sem rwsem call sites
[linux-block.git] / kernel / sys.c
index 891667a49bb78496f18f5d9256ef9dfe23604895..12805750a66c521e944628f1ac067236366a7405 100644 (file)
@@ -1846,7 +1846,7 @@ static int prctl_set_mm_exe_file(struct mm_struct *mm, unsigned int fd)
        if (exe_file) {
                struct vm_area_struct *vma;
 
-               down_read(&mm->mmap_sem);
+               mmap_read_lock(mm);
                for (vma = mm->mmap; vma; vma = vma->vm_next) {
                        if (!vma->vm_file)
                                continue;
@@ -1855,7 +1855,7 @@ static int prctl_set_mm_exe_file(struct mm_struct *mm, unsigned int fd)
                                goto exit_err;
                }
 
-               up_read(&mm->mmap_sem);
+               mmap_read_unlock(mm);
                fput(exe_file);
        }
 
@@ -1869,7 +1869,7 @@ exit:
        fdput(exe);
        return err;
 exit_err:
-       up_read(&mm->mmap_sem);
+       mmap_read_unlock(mm);
        fput(exe_file);
        goto exit;
 }
@@ -2010,7 +2010,7 @@ static int prctl_set_mm_map(int opt, const void __user *addr, unsigned long data
         * arg_lock protects concurent updates but we still need mmap_sem for
         * read to exclude races with sys_brk.
         */
-       down_read(&mm->mmap_sem);
+       mmap_read_lock(mm);
 
        /*
         * We don't validate if these members are pointing to
@@ -2049,7 +2049,7 @@ static int prctl_set_mm_map(int opt, const void __user *addr, unsigned long data
        if (prctl_map.auxv_size)
                memcpy(mm->saved_auxv, user_auxv, sizeof(user_auxv));
 
-       up_read(&mm->mmap_sem);
+       mmap_read_unlock(mm);
        return 0;
 }
 #endif /* CONFIG_CHECKPOINT_RESTORE */
@@ -2125,7 +2125,7 @@ static int prctl_set_mm(int opt, unsigned long addr,
         * mmap_sem for a) concurrent sys_brk, b) finding VMA for addr
         * validation.
         */
-       down_read(&mm->mmap_sem);
+       mmap_read_lock(mm);
        vma = find_vma(mm, addr);
 
        spin_lock(&mm->arg_lock);
@@ -2217,7 +2217,7 @@ static int prctl_set_mm(int opt, unsigned long addr,
        error = 0;
 out:
        spin_unlock(&mm->arg_lock);
-       up_read(&mm->mmap_sem);
+       mmap_read_unlock(mm);
        return error;
 }
 
@@ -2442,13 +2442,13 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
        case PR_SET_THP_DISABLE:
                if (arg3 || arg4 || arg5)
                        return -EINVAL;
-               if (down_write_killable(&me->mm->mmap_sem))
+               if (mmap_write_lock_killable(me->mm))
                        return -EINTR;
                if (arg2)
                        set_bit(MMF_DISABLE_THP, &me->mm->flags);
                else
                        clear_bit(MMF_DISABLE_THP, &me->mm->flags);
-               up_write(&me->mm->mmap_sem);
+               mmap_write_unlock(me->mm);
                break;
        case PR_MPX_ENABLE_MANAGEMENT:
        case PR_MPX_DISABLE_MANAGEMENT: