• T
    workqueue: remove PREPARE_[DELAYED_]WORK() · f073f922
    Tejun Heo 提交于
    Peter Hurley noticed that since a2c1c57b ("workqueue: consider
    work function when searching for busy work items"), a work item which
    gets assigned a different work function would break out of the
    non-reentrancy guarantee as workqueue would consider it a different
    work item.
    
    This is fragile and extremely subtle.  PREPARE_[DELAYED_]WORK() have
    never been used widely and its semantics has always been somewhat
    iffy.  If the work item is known not to be on queue when
    PREPARE_WORK() is called, there's no difference from using
    INIT_WORK().  If the work item may be queued at the time of
    PREPARE_WORK(), we can't really tell whether the old or new function
    will be executed the next time.
    
    We really don't want this level of subtlety in workqueue interface for
    such marginal use cases.  The previous patches converted all existing
    users away from PREPARE_[DELAYED_]WORK().  Let's remove them.
    Signed-off-by: NTejun Heo <tj@kernel.org>
    Cc: Peter Hurley <peter@hurleysoftware.com>
    Link: http://lkml.kernel.org/g/1392493119-9277-1-git-send-email-peter@hurleysoftware.com
    f073f922
workqueue.h 19.9 KB