nvmf: Always use 2 sgl elements for recv

Admin commands technically don't allow inline data,
but there is nothing from preventing us from posting
a recv buffer that could handle inline data. It just
won't be used for incoming admin capsules.

Change-Id: I3e7e4406e01ab870654a166d52221c11fc0ac683
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Ben Walker 2016-06-29 14:54:22 -07:00 committed by Daniel Verkamp
parent f7afa70bcb
commit 2a806421c3

View File

@ -381,19 +381,10 @@ nvmf_post_rdma_recv(struct spdk_nvmf_conn *conn,
wr.wr_id = (uintptr_t)rdma_req;
wr.next = NULL;
wr.sg_list = &rdma_req->recv_sgl;
wr.num_sge = 1;
wr.num_sge = 2;
nvmf_trace_ibv_sge(&rdma_req->recv_sgl);
/* for I/O queues we add bb sgl for in-capsule data use */
if (conn->type == CONN_TYPE_IOQ) {
wr.num_sge = 2;
SPDK_TRACELOG(SPDK_TRACE_DEBUG, "sgl2 local addr %p, length 0x%x, lkey 0x%x\n",
(void *)rdma_req->bb_sgl.addr,
rdma_req->bb_sgl.length,
rdma_req->bb_sgl.lkey);
}
rc = ibv_post_recv(conn->rdma.qp, &wr, &bad_wr);
if (rc) {
SPDK_ERRLOG("Failure posting rdma recv, rc = 0x%x\n", rc);