nvme_rdma: put requests when ibv_post_send fails.
Leaving these on the stack outstanding list can cause unnecessary buildup. If we fail to post the request to ibv, then the upper layer request will be freed immediately for reuse, but we will keep that request in the outstanding queue at the RDMA layer. Change-Id: Ib422dc9fcb50344ce7c01749f3e20ea9310fd5cb Signed-off-by: Seth Howell <seth.howell@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/470255 Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Alexey Marchuk <alexeymar@mellanox.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
32e3e269a3
commit
1399a42bbc
@ -1775,6 +1775,7 @@ nvme_rdma_qpair_submit_request(struct spdk_nvme_qpair *qpair,
|
||||
rc = ibv_post_send(rqpair->cm_id->qp, wr, &bad_wr);
|
||||
if (rc) {
|
||||
SPDK_ERRLOG("Failure posting rdma send for NVMf completion: %d (%s)\n", rc, spdk_strerror(rc));
|
||||
nvme_rdma_req_put(rqpair, rdma_req);
|
||||
}
|
||||
|
||||
return rc;
|
||||
|
Loading…
Reference in New Issue
Block a user