• Chao Leng's avatar
    nvme-fabrics: avoid double completions in nvmf_fail_nonready_command · ea5e5f42
    Chao Leng authored
    When reconnecting, the request may be completed with
    NVME_SC_HOST_PATH_ERROR in nvmf_fail_nonready_command, which currently
    set the state of the request to MQ_RQ_IN_FLIGHT before calling
    nvme_complete_rq.  When this happens for a request that is freed by
    the caller, such as nvme_submit_user_cmd, in the worst case the request
    could be completed again in tear down process.
    
    Instead of calling blk_mq_start_request from nvmf_fail_nonready_command,
    just use the new nvme_host_path_error helper to complete the command
    without starting it.
    Signed-off-by: default avatarChao Leng <lengchao@huawei.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    ea5e5f42
fabrics.c 31 KB