[PATCH] nvme_fc: io timeout should defer abort to ctrl reset

Keith Busch keith.busch at intel.com
Thu Mar 15 13:29:31 PDT 2018


On Mon, Mar 12, 2018 at 09:32:22AM -0700, James Smart wrote:
> The current nvme_fc code, when an io times out, will abort the io
> on the fc link, then call the error recovery routine to reset the
> controller. It is during the reset of the controller that the
> transport will wait for all ios to be aborted before sending a
> Disconnect LS to the target.
> 
> However, the reset routine only waits for the io which it generates
> the abort for to complete. Any io that was aborted just prior to the
> reset isn't in it's list to wait for. Thus the Disconnect is getting
> sent before the aborts have completed.
> 
> Correct by removing the abort in the timeout handler. The reset will
> generate the abort. At that point the timeout handler can be simplified
> to request the reset (via the error handler) and restart the timeout
> timer.
> 
> Also fixes a small typo in a comment in the reset handler.
> 
> Signed-off-by: James Smart <james.smart at broadcom.com>

This sounds right to me despite being less familiar with the nvme-fc
portion, and applied for 4.17.



More information about the Linux-nvme mailing list