If path reinstantiation is delayed by delay_wait_checks, wait_checks
is counting down, the path fails during the delay phase, and then
comes up again, the wait_check counter starts counting down at the
same value where it previously stopped, which may be very low (even 1).
To avoid that, reset the counter to pp->delay_wait_checks if a failure
is encountered during the delay phase.
Signed-off-by: Martin Wilck <mwilck@suse.com>
pp->wait_checks = pp->mpp->delay_wait_checks;
pp->watch_checks = 0;
}
- }else
+ } else {
fail_path(pp, 0);
+ if (pp->wait_checks > 0)
+ pp->wait_checks =
+ pp->mpp->delay_wait_checks;
+ }
/*
* cancel scheduled failback