diff options
| author | Lai Jiangshan <laijs@cn.fujitsu.com> | 2015-05-20 02:41:19 -0400 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2015-05-21 17:26:22 -0400 |
| commit | 37b1ef31a568fc02e53587620226e5f3c66454c8 (patch) | |
| tree | a6aba27cbbf72c03ae9f773a46230861fd0c2eac /kernel/workqueue.c | |
| parent | 899a94fe15a8e928277ff0d0402c086fa67fe16f (diff) | |
workqueue: move flush_scheduled_work() to workqueue.h
flush_scheduled_work() is just a simple call to flush_work().
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/workqueue.c')
| -rw-r--r-- | kernel/workqueue.c | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index ad8dc2b9efc3..c9eaa4e5c867 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c | |||
| @@ -2959,36 +2959,6 @@ int schedule_on_each_cpu(work_func_t func) | |||
| 2959 | } | 2959 | } |
| 2960 | 2960 | ||
| 2961 | /** | 2961 | /** |
| 2962 | * flush_scheduled_work - ensure that any scheduled work has run to completion. | ||
| 2963 | * | ||
| 2964 | * Forces execution of the kernel-global workqueue and blocks until its | ||
| 2965 | * completion. | ||
| 2966 | * | ||
| 2967 | * Think twice before calling this function! It's very easy to get into | ||
| 2968 | * trouble if you don't take great care. Either of the following situations | ||
| 2969 | * will lead to deadlock: | ||
| 2970 | * | ||
| 2971 | * One of the work items currently on the workqueue needs to acquire | ||
| 2972 | * a lock held by your code or its caller. | ||
| 2973 | * | ||
| 2974 | * Your code is running in the context of a work routine. | ||
| 2975 | * | ||
| 2976 | * They will be detected by lockdep when they occur, but the first might not | ||
| 2977 | * occur very often. It depends on what work items are on the workqueue and | ||
| 2978 | * what locks they need, which you have no control over. | ||
| 2979 | * | ||
| 2980 | * In most situations flushing the entire workqueue is overkill; you merely | ||
| 2981 | * need to know that a particular work item isn't queued and isn't running. | ||
| 2982 | * In such cases you should use cancel_delayed_work_sync() or | ||
| 2983 | * cancel_work_sync() instead. | ||
| 2984 | */ | ||
| 2985 | void flush_scheduled_work(void) | ||
| 2986 | { | ||
| 2987 | flush_workqueue(system_wq); | ||
| 2988 | } | ||
| 2989 | EXPORT_SYMBOL(flush_scheduled_work); | ||
| 2990 | |||
| 2991 | /** | ||
| 2992 | * execute_in_process_context - reliably execute the routine with user context | 2962 | * execute_in_process_context - reliably execute the routine with user context |
| 2993 | * @fn: the function to execute | 2963 | * @fn: the function to execute |
| 2994 | * @ew: guaranteed storage for the execute work structure (must | 2964 | * @ew: guaranteed storage for the execute work structure (must |
