Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=fae1a611d2f907aa2... Commit: fae1a611d2f907aa23c237b9f84df5089d30f728 Parent: ed23da95b63308e11f8d680b189686a5d2d380d0 Author: Petr Rockai prockai@redhat.com AuthorDate: Mon Dec 17 00:39:00 2012 +0100 Committer: Petr Rockai prockai@redhat.com CommitterDate: Mon Dec 17 00:47:55 2012 +0100
lvmetad: Fix a possible deadlock.
If an update and a query were running in parallel, there was a slim but non-zero chance of a deadlock due to (unnecessary) mutex nesting. --- daemons/lvmetad/lvmetad-core.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c index 4e02662..674ddea 100644 --- a/daemons/lvmetad/lvmetad-core.c +++ b/daemons/lvmetad/lvmetad-core.c @@ -671,8 +671,8 @@ static int update_metadata(lvmetad_state *s, const char *name, const char *_vgid
lock_vgid_to_metadata(s); old = dm_hash_lookup(s->vgid_to_metadata, _vgid); - lock_vg(s, _vgid); unlock_vgid_to_metadata(s); + lock_vg(s, _vgid);
seq = dm_config_find_int(metadata, "metadata/seqno", -1);
lvm2-commits@lists.fedorahosted.org