Commit bc165a26 authored by Daniel Verkamp's avatar Daniel Verkamp Committed by Jim Harris
Browse files

nvme/rdma: convert rqpair free_reqs to a TAILQ



Future patches will need to remove elements from the middle of the list,
so a singly-linked list won't be efficient.

Change-Id: Idad5df3aea08d58fef2e19770509363441f757c7
Signed-off-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-on: https://review.gerrithub.io/414881


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
parent ce2e6828
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -111,7 +111,7 @@ struct nvme_rdma_qpair {

	struct spdk_nvme_rdma_mr_map		*mr_map;

	STAILQ_HEAD(, spdk_nvme_rdma_req)	free_reqs;
	TAILQ_HEAD(, spdk_nvme_rdma_req)	free_reqs;
};

struct spdk_nvme_rdma_req {
@@ -123,7 +123,7 @@ struct spdk_nvme_rdma_req {

	struct ibv_sge				send_sgl;

	STAILQ_ENTRY(spdk_nvme_rdma_req)	link;
	TAILQ_ENTRY(spdk_nvme_rdma_req)		link;
};

static const char *rdma_cm_event_str[] = {
@@ -169,9 +169,9 @@ nvme_rdma_req_get(struct nvme_rdma_qpair *rqpair)
{
	struct spdk_nvme_rdma_req *rdma_req;

	rdma_req = STAILQ_FIRST(&rqpair->free_reqs);
	rdma_req = TAILQ_FIRST(&rqpair->free_reqs);
	if (rdma_req) {
		STAILQ_REMOVE_HEAD(&rqpair->free_reqs, link);
		TAILQ_REMOVE(&rqpair->free_reqs, rdma_req, link);
	}

	return rdma_req;
@@ -180,7 +180,7 @@ nvme_rdma_req_get(struct nvme_rdma_qpair *rqpair)
static void
nvme_rdma_req_put(struct nvme_rdma_qpair *rqpair, struct spdk_nvme_rdma_req *rdma_req)
{
	STAILQ_INSERT_HEAD(&rqpair->free_reqs, rdma_req, link);
	TAILQ_INSERT_HEAD(&rqpair->free_reqs, rdma_req, link);
}

static void
@@ -400,7 +400,7 @@ nvme_rdma_alloc_reqs(struct nvme_rdma_qpair *rqpair)
		goto fail;
	}

	STAILQ_INIT(&rqpair->free_reqs);
	TAILQ_INIT(&rqpair->free_reqs);
	for (i = 0; i < rqpair->num_entries; i++) {
		struct spdk_nvme_rdma_req	*rdma_req;
		struct spdk_nvme_cmd		*cmd;
@@ -422,7 +422,7 @@ nvme_rdma_alloc_reqs(struct nvme_rdma_qpair *rqpair)
		rdma_req->send_wr.num_sge = 1;
		rdma_req->send_wr.imm_data = 0;

		STAILQ_INSERT_TAIL(&rqpair->free_reqs, rdma_req, link);
		TAILQ_INSERT_TAIL(&rqpair->free_reqs, rdma_req, link);
	}

	return 0;