• Tejun Heo's avatar
    nvme: don't use PREPARE_WORK · 9ca97374
    Tejun Heo authored
    PREPARE_[DELAYED_]WORK() are being phased out.  They have few users
    and a nasty surprise in terms of reentrancy guarantee as workqueue
    considers work items to be different if they don't have the same work
    function.
    
    nvme_dev->reset_work is multiplexed with multiple work functions.
    Introduce nvme_reset_workfn() which invokes nvme_dev->reset_workfn and
    always use it as the work function and update the users to set the
    ->reset_workfn field instead of overriding the work function using
    PREPARE_WORK().
    
    It would probably be best to route this with other related updates
    through the workqueue tree.
    
    Compile tested.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: Matthew Wilcox <willy@linux.intel.com>
    Cc: linux-nvme@lists.infradead.org
    9ca97374
nvme-core.c 64.7 KB