]> www.infradead.org Git - users/jedix/linux-maple.git/commit
nvme: reset delayed remove_work after reconnect
authorKeith Busch <kbusch@kernel.org>
Wed, 11 Jun 2025 04:50:47 +0000 (06:50 +0200)
committerChristoph Hellwig <hch@lst.de>
Thu, 26 Jun 2025 11:04:35 +0000 (13:04 +0200)
commitdd2c18548964ae7ad48d208a765d909cd35448a1
treedc7166defe73166fbf93139d533b89a68c312040
parent4c8a951787ffc4b61a547db9866196104971b5fd
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>
drivers/nvme/host/core.c
drivers/nvme/host/multipath.c