nvmf: Add temporary special handling for AER

AER breaks our current model of requests/completion pairs.
Temporarily handle it by immediately re-posting the
capsule while we work on a real solution.

Change-Id: Ie7a4d88030b6fff5a11c4697eec0f024f9737f27
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Ben Walker 2016-07-22 15:08:55 -07:00
parent 04a0ac723c
commit c9593cd17e

View File

@ -1187,6 +1187,19 @@ spdk_nvmf_rdma_poll(struct spdk_nvmf_conn *conn)
return -1;
}
{
/* TEMPORARY SPECIAL CASE: For asynchronous event requests, just immediately
* re-post the capsule. */
struct spdk_nvme_cmd *cmd = &req->cmd->nvme_cmd;
if (conn->type == CONN_TYPE_AQ &&
cmd->opc == SPDK_NVME_OPC_ASYNC_EVENT_REQUEST) {
spdk_nvmf_rdma_request_release(conn, req);
break;
}
}
memset(req->rsp, 0, sizeof(*req->rsp));
rc = spdk_nvmf_request_prep_data(req,
rdma_req->bb_mr->addr,