• James Smart's avatar
    nvme_fc: io timeout should defer abort to ctrl reset · 041018c6
    James Smart authored
    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: default avatarJames Smart <james.smart@broadcom.com>
    Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    041018c6
fc.c 88.9 KB