From 82059f5cd455bc3ff2d8b0f39f984c792d6826fc Mon Sep 17 00:00:00 2001 From: Martin Wilck Date: Tue, 13 Nov 2018 22:30:52 +0100 Subject: [PATCH] multipathd: reset delay_wait_checks counter on failure 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 --- multipathd/main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/multipathd/main.c b/multipathd/main.c index 7fc97ba6..cc555bb7 100644 --- a/multipathd/main.c +++ b/multipathd/main.c @@ -2041,8 +2041,12 @@ check_path (struct vectors * vecs, struct path * pp, int ticks) 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 -- 2.20.1