nvme/rdma: Fix error return code in nvme_rdma_register_rsps

nvme_rdma_register_rsps returned ENOMEM for all failure cases. All of
them are not directly related to shortage of memory. Every point of
failure now sets relevant return code.

Signed-off-by: Evgeniy Kochetov <evgeniik@mellanox.com>
Signed-off-by: Sasha Kotchubievsky <sashakot@mellanox.com>
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
Change-Id: Ia340f6c6fd3a68d8c34acfefc2c9224ffcdcad3f
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/477302
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Seth Howell <seth.howell@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Evgeniy Kochetov 2019-12-09 13:32:29 +00:00 committed by Tomasz Zawadzki
parent 731dca3d77
commit e749c115c6

View File

@ -667,12 +667,13 @@ fail:
static int
nvme_rdma_register_rsps(struct nvme_rdma_qpair *rqpair)
{
int i;
int i, rc;
rqpair->rsp_mr = rdma_reg_msgs(rqpair->cm_id, rqpair->rsps,
rqpair->num_entries * sizeof(*rqpair->rsps));
if (rqpair->rsp_mr == NULL) {
SPDK_ERRLOG("Unable to register rsp_mr\n");
rc = -errno;
SPDK_ERRLOG("Unable to register rsp_mr: %s (%d)\n", spdk_strerror(errno), errno);
goto fail;
}
@ -688,12 +689,14 @@ nvme_rdma_register_rsps(struct nvme_rdma_qpair *rqpair)
rqpair->rsp_recv_wrs[i].sg_list = rsp_sgl;
rqpair->rsp_recv_wrs[i].num_sge = 1;
if (nvme_rdma_post_recv(rqpair, i)) {
rc = nvme_rdma_post_recv(rqpair, i);
if (rc) {
goto fail;
}
}
if (nvme_rdma_qpair_submit_recvs(rqpair)) {
rc = nvme_rdma_qpair_submit_recvs(rqpair);
if (rc) {
goto fail;
}
@ -701,7 +704,7 @@ nvme_rdma_register_rsps(struct nvme_rdma_qpair *rqpair)
fail:
nvme_rdma_unregister_rsps(rqpair);
return -ENOMEM;
return rc;
}
static void