async: make async_synchronize_full() more serializing

turns out that there are real problems with allowing async
tasks that are scheduled from async tasks to run after
the async_synchronize_full() returns.

This patch makes the _full more strict and a complete
synchronization. Later I might need to add back a lighter
form of synchronization for other uses.. but not right now.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Arjan van de Ven 2009-01-08 12:35:11 -08:00 committed by Linus Torvalds
parent 85da1fb545
commit 33b04b9308
1 changed files with 3 additions and 1 deletions

View File

@ -206,7 +206,9 @@ EXPORT_SYMBOL_GPL(async_schedule_special);
void async_synchronize_full(void)
{
async_synchronize_cookie(next_cookie);
do {
async_synchronize_cookie(next_cookie);
} while (!list_empty(&async_running) || !list_empty(&async_pending));
}
EXPORT_SYMBOL_GPL(async_synchronize_full);