Commit e749c115 authored by Evgeniy Kochetov's avatar Evgeniy Kochetov Committed by Tomasz Zawadzki
Browse files

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: default avatarEvgeniy Kochetov <evgeniik@mellanox.com>
Signed-off-by: default avatarSasha Kotchubievsky <sashakot@mellanox.com>
Signed-off-by: default avatarAlexey Marchuk <alexeymar@mellanox.com>
Change-Id: Ia340f6c6fd3a68d8c34acfefc2c9224ffcdcad3f
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/477302


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarSeth Howell <seth.howell@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: SPDK CI Jenkins <sys_sgci@intel.com>
parent 731dca3d
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -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