• James Smart's avatar
    nvme-fc: fix racing controller reset and create association · f20ef34d
    James Smart authored
    Recent patch to prevent calling __nvme_fc_abort_outstanding_ios in
    interrupt context results in a possible race condition. A controller
    reset results in errored io completions, which schedules error
    work. The change of error work to a work element allows it to fire
    after the ctrl state transition to NVME_CTRL_CONNECTING, causing
    any outstanding io (used to initialize the controller) to fail and
    cause problems for connect_work.
    
    Add a state check to only schedule error work if not in the RESETTING
    state.
    
    Fixes: 19fce047 ("nvme-fc: avoid calling _nvme_fc_abort_outstanding_ios from interrupt context")
    Signed-off-by: default avatarNigel Kirkland <nkirkland2304@gmail.com>
    Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    f20ef34d
fc.c 106 KB