• James Smart's avatar
    nvme_fc: fix error recovery on link down. · 69fa9646
    James Smart authored
    Currently, the fc transport invokes nvme_fc_error_recovery() on every
    io in which the transport detects an error.  Which means:
    a) it's really noisy on large io loads that all get hit by a link down.
    b) we repeatively call nvme_stop_queues() even though queues are
     stopped upon the first error or as first steps of reset_work.
    
    Correct by:
    Errors are only meaningful if the controller is in the LIVE state.
    Thus, enact the reset_work only if LIVE. If called repeatively, state
    will have already transitioned.
    There's no need to stop the queues here. Let the first steps of
    reset_work do the queue stopping.
    Signed-off-by: default avatarJames Smart <james.smart@broadcom.com>
    Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    69fa9646
fc.c 76.8 KB