async: replace list of active domains with global list of pending items
authorTejun Heo <tj@kernel.org>
Wed, 23 Jan 2013 17:32:30 +0000 (09:32 -0800)
committerTejun Heo <tj@kernel.org>
Wed, 23 Jan 2013 17:32:30 +0000 (09:32 -0800)
commit9fdb04cdc5566d6ba68283a0bebe49667ca0b0e8
tree998ae384cdfa764686f85e0b0dc57fc40b407d21
parent52722794d6a48162fd8906d54618ae60a4abdb21
async: replace list of active domains with global list of pending items

Global synchronization - async_synchronize_full() - is currently
implemented by keeping a list of all active registered domains and
syncing them one by one until no domain is active.

While this isn't necessarily a complex scheme, it can easily be
simplified by keeping global list of the pending items of all
registered active domains instead of list of domains and simply using
the globl pending list the same way as domain syncing.

This patch replaces async_domains with async_global_pending and update
lowest_in_progress() to use the global pending list if @domain is
%NULL.  async_synchronize_full_domain(NULL) is now allowed and
equivalent to async_synchronize_full().  As no one is calling with
NULL domain, this doesn't affect any existing users.

async_register_mutex is no longer necessary and dropped.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Dan Williams <djbw@fb.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
kernel/async.c