diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index 3fbabe73c..e7ca99ff0 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -1680,6 +1680,9 @@ spdk_nvmf_rdma_request_fill_iovs(struct spdk_nvmf_rdma_transport *rtransport, rqpair = SPDK_CONTAINEROF(req->qpair, struct spdk_nvmf_rdma_qpair, qpair); rgroup = rqpair->poller->group; + /* rdma wr specifics */ + nvmf_rdma_setup_request(rdma_req); + rc = spdk_nvmf_request_get_buffers(req, &rgroup->group, &rtransport->transport, length); if (rc != 0) { @@ -1695,6 +1698,9 @@ spdk_nvmf_rdma_request_fill_iovs(struct spdk_nvmf_rdma_transport *rtransport, goto err_exit; } + /* set the number of outstanding data WRs for this request. */ + rdma_req->num_outstanding_data_wr = 1; + return rc; err_exit: @@ -1861,12 +1867,6 @@ spdk_nvmf_rdma_request_parse_sgl(struct spdk_nvmf_rdma_transport *rtransport, /* backward compatible */ req->data = req->iov[0].iov_base; - /* rdma wr specifics */ - nvmf_rdma_setup_request(rdma_req); - - /* set the number of outstanding data WRs for this request. */ - rdma_req->num_outstanding_data_wr = 1; - SPDK_DEBUGLOG(SPDK_LOG_RDMA, "Request %p took %d buffer/s from central pool\n", rdma_req, req->iovcnt);