summaryrefslogtreecommitdiffstats
path: root/kernel/workqueue.c
diff options
context:
space:
mode:
authorBart Van Assche <bart.vanassche@gmail.com>2009-07-30 19:00:53 +0200
committerIngo Molnar <mingo@elte.hu>2009-08-04 15:21:16 +0200
commit5b0f437df0a3e374d26ad533eb78fe64744f55a8 (patch)
treeb450a583c3fea39baac8cdea13b152634cdea121 /kernel/workqueue.c
parentMerge branch 'for-linus' of git://neil.brown.name/md (diff)
downloadlinux-5b0f437df0a3e374d26ad533eb78fe64744f55a8.tar.xz
linux-5b0f437df0a3e374d26ad533eb78fe64744f55a8.zip
workqueues: Improve schedule_work() documentation
Two important aspects of the schedule_work() function are not yet documented: - that it is allowed to pass a struct work_struct * to this function that is already on the kernel-global workqueue; - the meaning of its return value. The patch below documents both aspects. Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com> Cc: "Greg Kroah-Hartman" <gregkh@suse.de> Cc: Andrew Morton <akpm@linux-foundation.org> LKML-Reference: <200907301900.54202.bart.vanassche@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r--kernel/workqueue.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 0668795d8818..3c44b56b0da7 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -600,7 +600,12 @@ static struct workqueue_struct *keventd_wq __read_mostly;
* schedule_work - put work task in global workqueue
* @work: job to be done
*
- * This puts a job in the kernel-global workqueue.
+ * Returns zero if @work was already on the kernel-global workqueue and
+ * non-zero otherwise.
+ *
+ * This puts a job in the kernel-global workqueue if it was not already
+ * queued and leaves it in the same position on the kernel-global
+ * workqueue otherwise.
*/
int schedule_work(struct work_struct *work)
{