rdma: Fix misordered assert and decrement.

In the error path, we were first decrementing a variable and then
asserting that it must be >0. These operations should occur in the
opposite order.

Change-Id: I6cec544faf17bb75cbfca3d3a3c173dc5db14f99
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/c/446440 (master)
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/447463
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Seth Howell 2019-02-27 07:54:45 -07:00 committed by Jim Harris
parent 37ad7fd3b8
commit 6dcace0744

View File

@ -2846,9 +2846,9 @@ spdk_nvmf_rdma_poller_poll(struct spdk_nvmf_rdma_transport *rtransport,
rqpair = SPDK_CONTAINEROF(rdma_req->req.qpair, struct spdk_nvmf_rdma_qpair, qpair);
SPDK_ERRLOG("data=%p length=%u\n", rdma_req->req.data, rdma_req->req.length);
assert(rdma_req->num_outstanding_data_wr > 0);
rdma_req->num_outstanding_data_wr--;
if (rdma_req->data.wr.opcode == IBV_WR_RDMA_READ) {
assert(rdma_req->num_outstanding_data_wr > 0);
rqpair->current_read_depth--;
if (rdma_req->num_outstanding_data_wr == 0) {
spdk_nvmf_rdma_request_set_state(rdma_req, RDMA_REQUEST_STATE_COMPLETED);