From 1d3ee6c5f15664750154bdf08267f7c020433056 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Tue, 21 Jun 2016 16:11:37 -0700 Subject: [PATCH] nvmf: remove nvmf_request cb_fn field It is always set to nvmf_process_async_completion and is only used within the library. Also rename nvmf_process_async_completion to spdk_nvmf_request_complete to clarify its purpose. Change-Id: Ie737fb60688329bfe329a8553c4a40ff2e5f8f1d Signed-off-by: Daniel Verkamp --- lib/nvmf/conn.c | 5 ++--- lib/nvmf/nvmf_admin_cmd.c | 4 ++-- lib/nvmf/nvmf_internal.h | 10 +++++----- lib/nvmf/session.c | 2 +- test/lib/nvmf/nvmf_c/nvmf_ut.c | 15 ++------------- 5 files changed, 12 insertions(+), 24 deletions(-) diff --git a/lib/nvmf/conn.c b/lib/nvmf/conn.c index 8e358da9c..ab3f2eb78 100644 --- a/lib/nvmf/conn.c +++ b/lib/nvmf/conn.c @@ -398,8 +398,8 @@ spdk_nvmf_send_response(struct spdk_nvmf_conn *conn, struct nvmf_request *req) return nvmf_post_rdma_send(conn, req->fabric_tx_ctx); } -static void -nvmf_process_async_completion(struct nvmf_request *req) +void +spdk_nvmf_request_complete(struct nvmf_request *req) { struct nvme_qp_tx_desc *tx_desc = (struct nvme_qp_tx_desc *)req->fabric_tx_ctx; struct spdk_nvme_cpl *response; @@ -916,7 +916,6 @@ static int nvmf_recv(struct spdk_nvmf_conn *conn, struct ibv_wc *wc) req->session = conn->sess; req->fabric_tx_ctx = tx_desc; req->fabric_rx_ctx = rx_desc; - req->cb_fn = nvmf_process_async_completion; req->length = 0; req->xfer = SPDK_NVME_DATA_NONE; req->data = NULL; diff --git a/lib/nvmf/nvmf_admin_cmd.c b/lib/nvmf/nvmf_admin_cmd.c index e25a815e6..84cdd2262 100644 --- a/lib/nvmf/nvmf_admin_cmd.c +++ b/lib/nvmf/nvmf_admin_cmd.c @@ -119,13 +119,13 @@ nvmf_process_admin_cmd(struct nvmf_request *req) } nsdata = spdk_nvme_ns_get_data(ns); memcpy(req->data, (char *)nsdata, sizeof(struct spdk_nvme_ns_data)); - req->cb_fn(req); + spdk_nvmf_request_complete(req); } else if (cmd->cdw10 == 1) { /* identify controller */ SPDK_TRACELOG(SPDK_TRACE_NVMF, "Identify Controller\n"); /* pull from virtual controller context */ memcpy(req->data, (char *)&session->vcdata, sizeof(struct spdk_nvme_ctrlr_data)); - req->cb_fn(req); + spdk_nvmf_request_complete(req); } else { SPDK_TRACELOG(SPDK_TRACE_NVMF, "Identify Namespace List\n"); response->status.sc = SPDK_NVME_SC_INVALID_OPCODE; diff --git a/lib/nvmf/nvmf_internal.h b/lib/nvmf/nvmf_internal.h index bc03896f7..d1610ffbb 100644 --- a/lib/nvmf/nvmf_internal.h +++ b/lib/nvmf/nvmf_internal.h @@ -78,10 +78,6 @@ #define TRACE_NVMF_LIB_COMPLETE SPDK_TPOINT_ID(TRACE_GROUP_NVMF, 0x7) #define TRACE_NVMF_IO_COMPLETE SPDK_TPOINT_ID(TRACE_GROUP_NVMF, 0x8) -struct nvmf_request; - -typedef void (*nvmf_cb_fn_t)(struct nvmf_request *); - union sgl_shift { struct spdk_nvmf_keyed_sgl_descriptor nvmf_sgl; struct spdk_nvme_sgl_descriptor nvme_sgl; @@ -123,7 +119,6 @@ struct nvmf_request { void *data; union nvmf_h2c_msg *cmd; union nvmf_c2h_msg *rsp; - nvmf_cb_fn_t cb_fn; TAILQ_ENTRY(nvmf_request) entries; }; @@ -169,6 +164,11 @@ struct spdk_nvmf_globals { uint16_t sin_port; }; +/** + * Send the response and transfer data from controller to host if required. + */ +void spdk_nvmf_request_complete(struct nvmf_request *req); + void nvmf_complete_cmd(void *rsp, const struct spdk_nvme_cpl *cmp); diff --git a/lib/nvmf/session.c b/lib/nvmf/session.c index 49bf6a30f..347dd3ad1 100644 --- a/lib/nvmf/session.c +++ b/lib/nvmf/session.c @@ -351,7 +351,7 @@ nvmf_complete_cmd(void *rsp, const struct spdk_nvme_cpl *cmp) response = &req_state->rsp->nvme_cpl; memcpy(response, cmp, sizeof(*cmp)); - req_state->cb_fn(req_state); + spdk_nvmf_request_complete(req_state); } void diff --git a/test/lib/nvmf/nvmf_c/nvmf_ut.c b/test/lib/nvmf/nvmf_c/nvmf_ut.c index 0b0bdcf4b..677e8adbe 100644 --- a/test/lib/nvmf/nvmf_c/nvmf_ut.c +++ b/test/lib/nvmf/nvmf_c/nvmf_ut.c @@ -116,18 +116,9 @@ struct spdk_nvmf_host *spdk_nvmf_host_find_by_tag(int tag) return NULL; } -static void io_nvmf_cmd_complete(struct nvmf_request *req) +void +spdk_nvmf_request_complete(struct nvmf_request *req) { - struct spdk_nvme_cpl *rsp; - - rsp = &req->rsp->nvme_cpl; - CU_ASSERT_EQUAL(rsp->cdw0, 0xff); - CU_ASSERT_EQUAL(rsp->status.sc, SPDK_NVME_SC_SUCCESS); -} - -static void admin_nvmf_cmd_complete(struct nvmf_request *req) -{ - } int @@ -534,7 +525,6 @@ nvmf_test_process_io_cmd(void) nvmf_cmd.cid = 3; nvmf_req.cmd = (union nvmf_h2c_msg *)&nvmf_cmd; nvmf_req.rsp = malloc(sizeof(union nvmf_c2h_msg)); - nvmf_req.cb_fn = io_nvmf_cmd_complete; nvmf_req.cid = nvmf_cmd.cid; cdw12 = (struct nvme_read_cdw12 *)&nvmf_cmd.cdw12; cdw12->nlb = 16; //read 16 lb, check in nvme read @@ -588,7 +578,6 @@ nvmf_test_process_admin_cmd(void) nvmf_req.session = sess; nvmf_req.cmd = (union nvmf_h2c_msg *)&nvmf_cmd; nvmf_req.rsp = malloc(sizeof(union nvmf_c2h_msg)); - nvmf_req.cb_fn = admin_nvmf_cmd_complete; #define BUILD_CMD(cmd_opc, cmd_nsid, cmd_cid, cmd_cdw10) \ do { \ nvmf_cmd.opc = cmd_opc; \