]> git.karo-electronics.de Git - mv-sheeva.git/commit
rlimits: make sure ->rlim_max never grows in sys_setrlimit
authorOleg Nesterov <oleg@redhat.com>
Thu, 3 Sep 2009 17:21:45 +0000 (19:21 +0200)
committerJiri Slaby <jirislaby@gmail.com>
Fri, 16 Jul 2010 07:48:46 +0000 (09:48 +0200)
commit2fb9d2689a0041b88b25bc3187eada2968e25995
tree28c25b5092a209cd55d5d3f29dea827bdde70abe
parent5ab46b345e418747b3a52f0892680c0745c4223c
rlimits: make sure ->rlim_max never grows in sys_setrlimit

Mostly preparation for Jiri's changes, but probably makes sense anyway.

sys_setrlimit() checks new_rlim.rlim_max <= old_rlim->rlim_max, but when
it takes task_lock() old_rlim->rlim_max can be already lowered. Move this
check under task_lock().

Currently this is not important, we can only race with our sub-thread,
this means the application is stupid. But when we change the code to allow
the update of !current task's limits, it becomes important to make sure
->rlim_max can be lowered "reliably" even if we race with the application
doing sys_setrlimit().

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
kernel/sys.c