File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -103,6 +103,7 @@ extern void wait_for_completion(struct completion *);
103103extern void wait_for_completion_io (struct completion * );
104104extern int wait_for_completion_interruptible (struct completion * x );
105105extern int wait_for_completion_killable (struct completion * x );
106+ extern int wait_for_completion_state (struct completion * x , unsigned int state );
106107extern unsigned long wait_for_completion_timeout (struct completion * x ,
107108 unsigned long timeout );
108109extern unsigned long wait_for_completion_io_timeout (struct completion * x ,
Original file line number Diff line number Diff line change @@ -204,6 +204,7 @@ EXPORT_SYMBOL(wait_for_completion_io_timeout);
204204int __sched wait_for_completion_interruptible (struct completion * x )
205205{
206206 long t = wait_for_common (x , MAX_SCHEDULE_TIMEOUT , TASK_INTERRUPTIBLE );
207+
207208 if (t == - ERESTARTSYS )
208209 return t ;
209210 return 0 ;
@@ -241,12 +242,23 @@ EXPORT_SYMBOL(wait_for_completion_interruptible_timeout);
241242int __sched wait_for_completion_killable (struct completion * x )
242243{
243244 long t = wait_for_common (x , MAX_SCHEDULE_TIMEOUT , TASK_KILLABLE );
245+
244246 if (t == - ERESTARTSYS )
245247 return t ;
246248 return 0 ;
247249}
248250EXPORT_SYMBOL (wait_for_completion_killable );
249251
252+ int __sched wait_for_completion_state (struct completion * x , unsigned int state )
253+ {
254+ long t = wait_for_common (x , MAX_SCHEDULE_TIMEOUT , state );
255+
256+ if (t == - ERESTARTSYS )
257+ return t ;
258+ return 0 ;
259+ }
260+ EXPORT_SYMBOL (wait_for_completion_state );
261+
250262/**
251263 * wait_for_completion_killable_timeout: - waits for completion of a task (w/(to,killable))
252264 * @x: holds the state of this particular completion
You can’t perform that action at this time.
0 commit comments