[lvm-devel] master - activation: trust 'pending' status reported by dmeventd

Zdenek Kabelac zkabelac at fedoraproject.org
Mon Feb 13 23:06:07 UTC 2017


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=65b82a80720b137e24077c29f9c52d6ad43f93a5
Commit:        65b82a80720b137e24077c29f9c52d6ad43f93a5
Parent:        05dd566a52e4311c0626eb1a1250042aba746fae
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Mon Feb 13 22:50:19 2017 +0100
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Tue Feb 14 00:04:26 2017 +0100

activation: trust 'pending' status reported by dmeventd

Only usleep when dmeventd reports 'pending' otherwise trust reported
state.
---
 lib/activate/activate.c |   11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/lib/activate/activate.c b/lib/activate/activate.c
index 608611f..ea56735 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);
 		}
 




More information about the lvm-devel mailing list