nvme: reset delayed remove_work after reconnect
The remove_work will proceed with permanently disconnecting on the initial final path failure if the head shows no paths after the delay. If a new path connects while the remove_work is pending, and if that new path happens to disconnect before that remove_work executes, the delayed removal should reset based on the most recent path disconnect time, but queue_delayed_work() won't do anything if the work is already pending. Attempt to cancel the delayed work when a new path connects, and use mod_delayed_work() in case the remove_work remains pending anyway. Signed-off-by:Keith Busch <kbusch@kernel.org> Reviewed-by:
Nilay Shroff <nilay@linux.ibm.com> Signed-off-by:
Christoph Hellwig <hch@lst.de>
Loading
Please sign in to comment