From 65b82a80720b137e24077c29f9c52d6ad43f93a5 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Mon, 13 Feb 2017 22:50:19 +0100 Subject: [PATCH] activation: trust 'pending' status reported by dmeventd Only usleep when dmeventd reports 'pending' otherwise trust reported state. --- lib/activate/activate.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/activate/activate.c b/lib/activate/activate.c index 608611f24..ea567359b 100644 --- a/lib/activate/activate.c +++ b/lib/activate/activate.c @@ -1948,16 +1948,13 @@ int monitor_dev_for_events(struct cmd_context *cmd, const struct logical_volume /* Check [un]monitor results */ /* Try a couple times if pending, but not forever... */ - for (i = 0; i < 40; i++) { + for (i = 0;; i++) { pending = 0; monitored = seg->segtype->ops->target_monitored(seg, &pending); - if (pending || - (!monitored && monitor) || - (monitored && !monitor)) - log_very_verbose("%s %smonitoring still pending: waiting...", - display_lvname(lv), monitor ? "" : "un"); - else + if (!pending || i >= 40) break; + log_very_verbose("%s %smonitoring still pending: waiting...", + display_lvname(lv), monitor ? "" : "un"); usleep(10000 * i); } -- 2.43.5