• Tejun Heo's avatar
    percpu_ref: unify staggered atomic switching wait behavior · 18808354
    Tejun Heo authored
    When an atomic or percpu switching starts before the previous atomic
    switching finishes, the taken behaviors are
    
    * If the new atomic switching has confirmation callback, it waits
      for the previous atomic switching to complete.
    
    * If the new percpu switching is the first percpu switching following
      the previous atomic switching, it waits the previous atomic
      switching to complete.
    
    No percpu_ref user depends on these subtleties.  The only meaningful
    part is that, if the caller ensures that atomic switching isn't in
    progress, mode switching operations can be issued from any context.
    
    This patch pulls the wait logic to the top of both switching functions
    so that they always wait for the previous atomic switching to
    complete.  This makes the behavior simpler and consistent for both
    directions and will help allowing concurrent invocations of mode
    switching functions.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    18808354
percpu-refcount.c 11.5 KB