Loading
bdev/nvme: Clear nvme_ctrlr->reset_start_tsc only if reset succeeded
nvme_ctrlr->reset_start_tsc remembers the time at reset started failing. However, bdev_nvme_failover_ctrlr() can be called by any reason when reconnect has been failing. bdev_nvme_check_op_after_reset() cleared it and bdev_nvme_failover_ctrlr() updated it to the current time. If bdev_nvme_failover_ctrlr() and reconnect failure were repeated, ctrlr_loss_timeout was never expired. Fix the bug as follows: - Clear nvme_ctrlr->reset_start_tsc only if reset succeeded. - reset/failover updates nvme_ctrlr->reset_start_tsc only if it is zero. This fix will be helpful to prevent confusion. It was confusing that a check function changed states. check function does not change reset_start_tsc anymore. Change-Id: I206b2ca756c4cc4f074eb44a6e2d21e08641822c Signed-off-by:Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/25863 Reviewed-by:
Jacek Kalwas <jacek.kalwas@nutanix.com> Reviewed-by:
Ben Walker <ben@nvidia.com> Community-CI: Mellanox Build Bot Reviewed-by:
Jim Harris <jim.harris@nvidia.com> Tested-by:
SPDK Automated Test System <spdkbot@gmail.com>