+27
−57
Loading
This was a very long term potential bug. bdev_nvme_reset/failover_ctrlr() cleared pending reset and then completed reset. However, if external reset request was submitted from the bdev layer between pending reset clear and reset completion, the external reset request lost wakeup. Fix this bug by moving pending reset list from per nvme_ctrlr_channel to per nvme_ctrlr and move operation to clear pending resets into the same lock as reset completion. Adjust existing unit test cases. Include unit test for reproduction into this patch. Signed-off-by:Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I09030b0fb118f65a16d6e23bed53e1755f59bffb Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25291 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by:
Jim Harris <jim.harris@samsung.com> Reviewed-by:
Konrad Sztyber <konrad.sztyber@intel.com>