41e4f25
commit 509ba58eaa537a8db2e0bd41d8c56c52a68e8512
41e4f25
Author: Peter Rajnoha <prajnoha@redhat.com>
41e4f25
Date:   Tue May 14 11:04:30 2013 +0200
41e4f25
41e4f25
    lvm2-2_02_99-fix-possible-deadlock-in-lvmetad-for-parallel-update-and-query.patch
41e4f25
---
41e4f25
 WHATS_NEW                      | 1 +
41e4f25
 daemons/lvmetad/lvmetad-core.c | 2 +-
41e4f25
 2 files changed, 2 insertions(+), 1 deletion(-)
41e4f25
41e4f25
diff --git a/WHATS_NEW b/WHATS_NEW
41e4f25
index 25e07ee..4728466 100644
41e4f25
--- a/WHATS_NEW
41e4f25
+++ b/WHATS_NEW
41e4f25
@@ -1,5 +1,6 @@
41e4f25
 Version 2.02.99 - 
41e4f25
 ===================================
41e4f25
+  Fix possible deadlock when querying and updating lvmetad at the same time.
41e4f25
   Avoid a global lock in pvs when lvmetad is in use.
41e4f25
   Fix crash in pvscan --cache -aay triggered by non-mda PV.
41e4f25
   Fix lvm2app to return all property sizes in bytes.
41e4f25
diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c
41e4f25
index 0a1c884..3f417da 100644
41e4f25
--- a/daemons/lvmetad/lvmetad-core.c
41e4f25
+++ b/daemons/lvmetad/lvmetad-core.c
41e4f25
@@ -675,8 +675,8 @@ static int update_metadata(lvmetad_state *s, const char *name, const char *_vgid
41e4f25
 
41e4f25
 	lock_vgid_to_metadata(s);
41e4f25
 	old = dm_hash_lookup(s->vgid_to_metadata, _vgid);
41e4f25
-	lock_vg(s, _vgid);
41e4f25
 	unlock_vgid_to_metadata(s);
41e4f25
+	lock_vg(s, _vgid);
41e4f25
 
41e4f25
 	seq = dm_config_find_int(metadata, "metadata/seqno", -1);
41e4f25