From: Nishanth Aravamudan Add schedule_timeout_{,un}interruptible() interfaces so that schedule_timeout() callers don't have to worry about forgetting to add the set_current_state() call beforehand. Signed-off-by: Nishanth Aravamudan Signed-off-by: Andrew Morton --- include/linux/sched.h | 2 ++ kernel/timer.c | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff -puN include/linux/sched.h~schedule_timeout_uninterruptible include/linux/sched.h --- devel/include/linux/sched.h~schedule_timeout_uninterruptible 2005-08-05 00:37:55.000000000 -0700 +++ devel-akpm/include/linux/sched.h 2005-08-05 00:37:55.000000000 -0700 @@ -202,6 +202,8 @@ extern int in_sched_functions(unsigned l #define MAX_SCHEDULE_TIMEOUT LONG_MAX extern signed long FASTCALL(schedule_timeout(signed long timeout)); +extern signed long schedule_timeout_interruptible(signed long timeout); +extern signed long schedule_timeout_uninterruptible(signed long timeout); asmlinkage void schedule(void); struct namespace; diff -puN kernel/timer.c~schedule_timeout_uninterruptible kernel/timer.c --- devel/kernel/timer.c~schedule_timeout_uninterruptible 2005-08-05 00:37:55.000000000 -0700 +++ devel-akpm/kernel/timer.c 2005-08-05 00:37:55.000000000 -0700 @@ -1154,6 +1154,20 @@ fastcall signed long __sched schedule_ti EXPORT_SYMBOL(schedule_timeout); +signed long __sched schedule_timeout_interruptible(signed long timeout) +{ + set_current_state(TASK_INTERRUPTIBLE); + return schedule_timeout(timeout); +} +EXPORT_SYMBOL(schedule_timeout_interruptible); + +signed long __sched schedule_timeout_uninterruptible(signed long timeout) +{ + set_current_state(TASK_UNINTERRUPTIBLE); + return schedule_timeout(timeout); +} +EXPORT_SYMBOL(schedule_timeout_uninterruptible); + /* Thread ID - the internal kernel "pid" */ asmlinkage long sys_gettid(void) { _