05 Jan, 2011
1 commit
-
wait_for_completion_*_timeout() can return:
0: if the wait timed out
-ve: if the wait was interrupted
+ve: if the completion was completed.As they currently return an 'unsigned long', the last two cases
are not easily distinguished which can easily result in buggy
code, as is the case for the recently added
wait_for_completion_interruptible_timeout() call in
net/sunrpc/cache.cSo change them both to return 'long'. As MAX_SCHEDULE_TIMEOUT
is LONG_MAX, a large +ve return value should never overflow.Signed-off-by: NeilBrown
Cc: Peter Zijlstra
Cc: J. Bruce Fields
Cc: Andrew Morton
Cc: Linus Torvalds
LKML-Reference:
Signed-off-by: Ingo Molnar
27 Oct, 2010
1 commit
-
Add more wait, wake, and completion interfaces to the device-drivers
docbook.Fix kernel-doc notation in the added files.
Signed-off-by: Randy Dunlap
Signed-off-by: Linus Torvalds
30 May, 2010
1 commit
-
Add missing _killable_timeout variant for wait_for_completion that will
return when a timeout expires or the task is killed.CC: Ingo Molnar
CC: Andreas Herrmann
CC: Thomas Gleixner
CC: Mike Galbraith
Acked-by: Peter Zijlstra
Signed-off-by: Sage Weil
26 Aug, 2008
1 commit
-
This patch adds kernel doc for the completion feature.
An error in the split-man.pl PERL snippet in kernel-doc-nano-HOWTO.txt is
also fixed.Signed-off-by: Kevin Diggs
Signed-off-by: Ingo Molnar
15 Aug, 2008
1 commit
-
m68k fails to build with these functions inlined in completion.h. Move
them out of line into sched.c and export them to avoid this problem.Signed-off-by: Dave Chinner
Cc: Geert Uytterhoeven
Cc: Ingo Molnar
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
13 Aug, 2008
1 commit
-
XFS object flushing doesn't quite match existing completion semantics. It
mixed exclusive access with completion. That is, we need to mark an object as
being flushed before flushing it to disk, and then block any other attempt to
flush it until the completion occurs. We do this but adding an extra count to
the completion before we start using them. However, we still need to
determine if there is a completion in progress, and allow no-blocking attempts
fo completions to decrement the count.To do this we introduce:
int try_wait_for_completion(struct completion *x)
returns a failure status if done == 0, otherwise decrements done
to zero and returns a "started" status. This is provided
to allow counted completions to begin safely while holding
object locks in inverted order.int completion_done(struct completion *x)
returns 1 if there is no waiter, 0 if there is a waiter
(i.e. a completion in progress).This replaces the use of semaphores for providing this exclusion
and completion mechanism.SGI-PV: 981498
SGI-Modid: xfs-linux-melb:xfs-kern:31816a
Signed-off-by: David Chinner
Signed-off-by: Lachlan McIlroy
07 Dec, 2007
1 commit
-
Signed-off-by: Matthew Wilcox
25 Oct, 2007
1 commit
-
Jeff Dike noticed that wait_for_completion_interruptible()'s prototype
had a mismatched fastcall.Fix this by removing the fastcall attributes from all the completion APIs.
Found-by: Jeff Dike
Signed-off-by: Ingo Molnar
11 Jul, 2006
1 commit
-
Clean up lockdep on-stack-completion initializer. (This also removes the
dependency on waitqueue_lock_key.)Signed-off-by: Ingo Molnar
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
04 Jul, 2006
1 commit
-
lockdep needs to have the waitqueue lock initialized for on-stack waitqueues
implicitly initialized by DECLARE_COMPLETION(). Introduce the API.Signed-off-by: Ingo Molnar
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
17 Apr, 2005
1 commit
-
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.Let it rip!