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: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-on: https://review.gerrithub.io/414881
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Daniel Verkamp 2018-06-12 12:56:05 -07:00 committed by Jim Harris
parent ce2e68289b
commit bc165a2664

View File

@ -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;