]> err.no Git - linux-2.6/commit
Add new 'cond_resched_bkl()' helper function
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 11 May 2008 23:04:48 +0000 (16:04 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 11 May 2008 23:04:48 +0000 (16:04 -0700)
commitc3921ab71507b108d51a0f1ee960f80cd668a93d
treeb1408b898a8b50f15ad4a0cf1f29e17cc0138485
parent9662369786b9d07fd46d65b0f9e3938a3e01a5d9
Add new 'cond_resched_bkl()' helper function

It acts exactly like a regular 'cond_resched()', but will not get
optimized away when CONFIG_PREEMPT is set.

Normal kernel code is already preemptable in the presense of
CONFIG_PREEMPT, so cond_resched() is optimized away (see commit
02b67cc3ba36bdba351d6c3a00593f4ec550d9d3 "sched: do not do
cond_resched() when CONFIG_PREEMPT").

But when wanting to conditionally reschedule while holding a lock, you
need to use "cond_sched_lock(lock)", and the new function is the BKL
equivalent of that.

Also make fs/locks.c use it.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/locks.c
include/linux/sched.h
kernel/sched.c