From e28e22b9e1e4f7243608aa24ddf43ec63afd1751 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Thu, 2 Apr 2015 12:42:18 +0200 Subject: [PATCH] lvmcache: skip drop when vg_write lock is not held Commit 80f4b4b8039a88dfa2648a9b5bb5e16f41b81f87 introduced undesirable side-effects for lvm2app user which happens to be our own python binding. It appear obtaing pvs list keeps global lock. So restricting this to VG_GLOBAL READ locks and skip the drop skip if WRITE lock is held. --- WHATS_NEW | 1 + lib/cache/lvmcache.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/WHATS_NEW b/WHATS_NEW index 0a5d79747..79136f92f 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.119 - ================================== + Don't skip invalidation of cached orphans if vg write lck is held (2.02.118). Log relevant PV tags when using cling allocation. Add str_list_add_list() to combine two lists. Fix LV processing with selection to always do the selection on initial state. diff --git a/lib/cache/lvmcache.c b/lib/cache/lvmcache.c index 2b4e2c618..27b429265 100644 --- a/lib/cache/lvmcache.c +++ b/lib/cache/lvmcache.c @@ -287,7 +287,7 @@ void lvmcache_commit_metadata(const char *vgname) void lvmcache_drop_metadata(const char *vgname, int drop_precommitted) { - if (lvmcache_vgname_is_locked(VG_GLOBAL)) + if (lvmcache_vgname_is_locked(VG_GLOBAL) && !vg_write_lock_held()) return; /* For VG_ORPHANS, we need to invalidate all labels on orphan PVs. */