nvme/tcp: Fix check of completion number during icresp handling
The current approach checks "rc == 0". It worked before adding polling of poll group since a single qpair should return 1 completion for its own icreq while poll group can return several completions for all qpairs attached to this poll group (but .e.g not for those qpair who is waiting for the completion). Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com> Change-Id: I60d05d8d6640e4e2bbaf3cd533d2f5a3637adea1 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4768 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
344bb69312
commit
c72a16431a
@ -1668,7 +1668,7 @@ nvme_tcp_qpair_icreq_send(struct nvme_tcp_qpair *tqpair)
|
||||
rc = nvme_tcp_qpair_process_completions(&tqpair->qpair, 0);
|
||||
}
|
||||
} while ((tqpair->state != NVME_TCP_QPAIR_STATE_RUNNING) &&
|
||||
(rc == 0) && (spdk_get_ticks() <= icreq_timeout_tsc));
|
||||
(rc >= 0) && (spdk_get_ticks() <= icreq_timeout_tsc));
|
||||
|
||||
if (tqpair->state != NVME_TCP_QPAIR_STATE_RUNNING) {
|
||||
SPDK_ERRLOG("Failed to construct the tqpair=%p via correct icresp\n", tqpair);
|
||||
|
Loading…
Reference in New Issue
Block a user