diff options
Diffstat (limited to 'mm/mlock.c')
-rw-r--r-- | mm/mlock.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/mm/mlock.c b/mm/mlock.c index 16e9f947b..75bca3639 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -198,7 +198,7 @@ asmlinkage long sys_mlock(unsigned long start, size_t len) unsigned long lock_limit; int error = -ENOMEM; - down(¤t->mm->mmap_sem); + down_write(¤t->mm->mmap_sem); len = PAGE_ALIGN(len + (start & ~PAGE_MASK)); start &= PAGE_MASK; @@ -219,7 +219,7 @@ asmlinkage long sys_mlock(unsigned long start, size_t len) error = do_mlock(start, len, 1); out: - up(¤t->mm->mmap_sem); + up_write(¤t->mm->mmap_sem); return error; } @@ -227,11 +227,11 @@ asmlinkage long sys_munlock(unsigned long start, size_t len) { int ret; - down(¤t->mm->mmap_sem); + down_write(¤t->mm->mmap_sem); len = PAGE_ALIGN(len + (start & ~PAGE_MASK)); start &= PAGE_MASK; ret = do_mlock(start, len, 0); - up(¤t->mm->mmap_sem); + up_write(¤t->mm->mmap_sem); return ret; } @@ -268,7 +268,7 @@ asmlinkage long sys_mlockall(int flags) unsigned long lock_limit; int ret = -EINVAL; - down(¤t->mm->mmap_sem); + down_write(¤t->mm->mmap_sem); if (!flags || (flags & ~(MCL_CURRENT | MCL_FUTURE))) goto out; @@ -286,7 +286,7 @@ asmlinkage long sys_mlockall(int flags) ret = do_mlockall(flags); out: - up(¤t->mm->mmap_sem); + up_write(¤t->mm->mmap_sem); return ret; } @@ -294,8 +294,8 @@ asmlinkage long sys_munlockall(void) { int ret; - down(¤t->mm->mmap_sem); + down_write(¤t->mm->mmap_sem); ret = do_mlockall(0); - up(¤t->mm->mmap_sem); + up_write(¤t->mm->mmap_sem); return ret; } |