As we do when deleting ctrlr_channel, disconnect and then free I/O qpair in a ctrlr reset sequence. Deleting ctrlr_channel and resetting ctrlr_channel may cause conflicts. This patch processes such conflicts correctly. If destroy_ctrlr_channel_cb() is executed between pending and executing reset_destroy_qpair(), reset_destroy_qpair() is not executed because ctrlr_channel is not found. In this case, destroy_qpair_channel() starts disconnecting qpair and deletes ctrlr_channel. Then disconnected_qpair_cb() releases a reference to poll group. If destroy_ctrlr_channel_cb() is excuted between executing reset_destroy_qpair() and disconnected_qpair_cb(), destroy_ctrlr_channel_cb() skips ctrlr_channel for a reset sequence. Change-Id: I1f49f74b94aefbea178680aa53ded3a12876c676 Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10766 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> |
||
---|---|---|
.. | ||
accel | ||
bdev | ||
blob | ||
blobfs | ||
env_dpdk | ||
event | ||
scheduler | ||
sock | ||
Makefile |