nvme-fabrics: avoid double completions in nvmf_fail_nonready_command
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:Chao Leng <lengchao@huawei.com> Signed-off-by:
Christoph Hellwig <hch@lst.de>
parent
dda3248e
Please register or sign in to comment