• Tejun Heo's avatar
    async: replace list of active domains with global list of pending items · 9fdb04cd
    Tejun Heo authored
    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: default avatarTejun 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>
    9fdb04cd
async.c 9.99 KB