Skip to content
  • Tejun Heo's avatar
    workqueue: separate out drain_workqueue() from destroy_workqueue() · 9c5a2ba7
    Tejun Heo authored
    
    
    There are users which want to drain workqueues without destroying it.
    Separate out drain functionality from destroy_workqueue() into
    drain_workqueue() and make it accessible to workqueue users.
    
    To guarantee forward-progress, only chain queueing is allowed while
    drain is in progress.  If a new work item which isn't chained from the
    running or pending work items is queued while draining is in progress,
    WARN_ON_ONCE() is triggered.
    
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: James Bottomley <James.Bottomley@hansenpartnership.com>
    9c5a2ba7