• J
    nvme_fc: fix abort race on teardown with lld reject · b12740d3
    James Smart 提交于
    Another abort race: An io request is started, becomes active,
    and is attempted to be started with the lldd. At the same time
    the controller is stopped/torndown and an itterator is run to
    abort the ios. As the io is active, it is added to the outstanding
    aborted io count.  However on the original io request thread, the
    driver ends up rejecting the io due to the condition that induced
    the controller teardown. The driver reject path didn't check whether
    it was in the outstanding io count. This left the count outstanding
    stopping controller teardown.
    
    Correct by, in the driver reject case, setting the state to
    inactive and checking whether it was in the outstanding io count.
    Signed-off-by: NJames Smart <james.smart@broadcom.com>
    Reviewed-by: NSagi Grimberg <sagi@grimberg.me>
    Signed-off-by: NKeith Busch <keith.busch@intel.com>
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    b12740d3
fc.c 89.0 KB