[lvm-devel] main - tools: missing sync after deactivation

Zdenek Kabelac zkabelac at sourceware.org
Mon Jan 31 13:57:29 UTC 2022


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=f8d12913e78e25120ca41d8d6938ec3a423274f5
Commit:        f8d12913e78e25120ca41d8d6938ec3a423274f5
Parent:        e10f67e91728f1e576803df884049ecbd92874d0
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Fri Jan 28 17:42:04 2022 +0100
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Mon Jan 31 14:55:42 2022 +0100

tools: missing sync after deactivation

Caching of DM states optimisation revealed some missing
synchronisation points.
---
 tools/lvchange.c | 2 ++
 tools/toollib.c  | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/tools/lvchange.c b/tools/lvchange.c
index 0525bc53c..879999766 100644
--- a/tools/lvchange.c
+++ b/tools/lvchange.c
@@ -358,6 +358,8 @@ static int _lvchange_resync(struct cmd_context *cmd, struct logical_volume *lv)
 	if (monitored != DMEVENTD_MONITOR_IGNORE)
 		init_dmeventd_monitor(monitored);
 	init_mirror_in_sync(0);
+	if (!sync_local_dev_names(cmd))
+		log_warn("Failed to sync local dev names.");
 
 	log_very_verbose("Starting resync of %s%s%s%s %s.",
 			 (active) ? "active " : "",
diff --git a/tools/toollib.c b/tools/toollib.c
index e8873adee..4a131aea8 100644
--- a/tools/toollib.c
+++ b/tools/toollib.c
@@ -900,6 +900,10 @@ void lv_spawn_background_polling(struct cmd_context *cmd,
 	const char *pvname;
 	const struct logical_volume *lv_mirr = NULL;
 
+	/* Ensure there is nothing waiting on cookie */
+	if (!sync_local_dev_names(cmd))
+		log_warn("Failed to sync local dev names.");
+
 	if (lv_is_pvmove(lv))
 		lv_mirr = lv;
 	else if (lv_is_locked(lv))




More information about the lvm-devel mailing list