Commit 62eca397 authored by Chao Leng's avatar Chao Leng Committed by Christoph Hellwig
Browse files

nvme-rdma: handle nvme_rdma_post_send failures better



nvme_rdma_post_send failing is a path related error and should bounce
to another path when using nvme-multipath.  Call nvme_host_path_error
when nvme_rdma_post_send returns -EIO to ensure nvme_complete_rq gets
invoked to fail over to another path if there is one.

Signed-off-by: default avatarChao Leng <lengchao@huawei.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent ea5e5f42
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2098,7 +2098,9 @@ static blk_status_t nvme_rdma_queue_rq(struct blk_mq_hw_ctx *hctx,
err_unmap:
	nvme_rdma_unmap_data(queue, rq);
err:
	if (err == -ENOMEM || err == -EAGAIN)
	if (err == -EIO)
		ret = nvme_host_path_error(rq);
	else if (err == -ENOMEM || err == -EAGAIN)
		ret = BLK_STS_RESOURCE;
	else
		ret = BLK_STS_IOERR;