X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=mm%2Fmlock.c;h=7b2656055d6a96a6b940574e4d23f0a4fc7dd6bc;hb=389d1b083c767a360ec84b27a95da06244becec8;hp=4d3fea267e0dabde457091a2618a0efe8dba864d;hpb=04fc5fd39e09c460fd478ea84b34c445dd376759;p=linux-2.6-omap-h63xx.git diff --git a/mm/mlock.c b/mm/mlock.c index 4d3fea267e0..7b2656055d6 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -244,9 +244,12 @@ int user_shm_lock(size_t size, struct user_struct *user) locked = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; lock_limit = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur; + if (lock_limit == RLIM_INFINITY) + allowed = 1; lock_limit >>= PAGE_SHIFT; spin_lock(&shmlock_user_lock); - if (locked + user->locked_shm > lock_limit && !capable(CAP_IPC_LOCK)) + if (!allowed && + locked + user->locked_shm > lock_limit && !capable(CAP_IPC_LOCK)) goto out; get_uid(user); user->locked_shm += locked;