summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Morton <akpm@zip.com.au>2002-07-04 08:30:54 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-07-04 08:30:54 -0700
commitb2bd3a26bbf30c69062d45de4622e7e5b412ad16 (patch)
tree5ef9e426cd30db600022b66456805d17b9619849 /include
parentf42e6ed8b8c71b3cdc1f0ed7c3f8d2f0c0ec6427 (diff)
[PATCH] set TASK_RUNNING in cond_resched()
do_select() does set_current_state(TASK_INTERRUPTIBLE) then calls __pollwait() which calls __get_free_page() and the cond_resched() which I added to the pagecache reclaim code never returns. The patch makes cond_resched() more useful by setting current->state to TASK_RUNNING before scheduling.
Diffstat (limited to 'include')
-rw-r--r--include/linux/sched.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 90fb402ee802..9b5af2cc11d2 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -837,10 +837,11 @@ static inline int need_resched(void)
return unlikely(test_thread_flag(TIF_NEED_RESCHED));
}
+extern void __cond_resched(void);
static inline void cond_resched(void)
{
if (need_resched())
- schedule();
+ __cond_resched();
}
/* Reevaluate whether the task has signals pending delivery.