[lvm-devel] master - lvmetad: Fix pvmeta_old_{pvid, dev} logic when they are the same.

Petr Rockai mornfall at fedoraproject.org
Fri Mar 14 09:10:29 UTC 2014


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=551b6b799867860fc6a437be5298bc74b814ab19
Commit:        551b6b799867860fc6a437be5298bc74b814ab19
Parent:        67c539f346a8259a4100ab10196486f8793fecce
Author:        Petr Rockai <me at mornfall.net>
AuthorDate:    Fri Mar 14 10:06:27 2014 +0100
Committer:     Petr Rockai <me at mornfall.net>
CommitterDate: Fri Mar 14 10:09:16 2014 +0100

lvmetad: Fix pvmeta_old_{pvid,dev} logic when they are the same.

---
 daemons/lvmetad/lvmetad-core.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c
index 1b093cc..1858ee2 100644
--- a/daemons/lvmetad/lvmetad-core.c
+++ b/daemons/lvmetad/lvmetad-core.c
@@ -883,22 +883,22 @@ static response pv_found(lvmetad_state *s, request r)
 
 	lock_pvid_to_pvmeta(s);
 
+	if ((pvmeta_old_pvid = dm_hash_lookup(s->pvid_to_pvmeta, pvid)))
+		dm_config_get_uint64(pvmeta_old_pvid->root, "pvmeta/device", &device_old_pvid);
+
 	if ((old = dm_hash_lookup_binary(s->device_to_pvid, &device, sizeof(device)))) {
 		pvmeta_old_dev = dm_hash_lookup(s->pvid_to_pvmeta, old);
 		dm_hash_remove(s->pvid_to_pvmeta, old);
 		vgid_old = dm_hash_lookup(s->pvid_to_vgid, old);
 	}
 
-	if ((pvmeta_old_pvid = dm_hash_lookup(s->pvid_to_pvmeta, pvid)))
-		dm_config_get_uint64(pvmeta_old_pvid->root, "pvmeta/device", &device_old_pvid);
-
 	DEBUGLOG(s, "pv_found %s, vgid = %s, device = %" PRIu64 " (previously %" PRIu64 "), old = %s",
 		 pvid, vgid, device, device_old_pvid, old);
 
 	if (!(cft->root = dm_config_clone_node(cft, pvmeta, 0)))
                 goto out_of_mem;
 
-	if (pvmeta_old_pvid && compare_config(pvmeta_old_pvid->root, cft->root))
+	if (!pvmeta_old_pvid || compare_config(pvmeta_old_pvid->root, cft->root))
 		changed |= 1;
 
 	if (pvmeta_old_pvid && device != device_old_pvid) {




More information about the lvm-devel mailing list