diff --git a/WHATS_NEW b/WHATS_NEW index dc2d7d471..323d707de 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,8 +1,9 @@ Version 2.02.36 - ================================= + Exclude VG_GLOBAL from internal concurrent VG lock counter. Fix vgsplit internal counting of snapshot LVs. - Fix internal snapshot_count when vgmerge with snapshots in source VG. - Simply clvmd-openais by using non-async saLckResourceLock. + Fix vgmerge snapshot_count when source VG contains snapshots. + Simplify clvmd-openais by using non-async saLckResourceLock. Check lv_count in vg_validate. Fix internal LV counter when a snapshot is removed. Fix metadata corruption writing lvm1-formatted metadata with snapshots. diff --git a/lib/cache/lvmcache.c b/lib/cache/lvmcache.c index cf833c046..19b05fbc1 100644 --- a/lib/cache/lvmcache.c +++ b/lib/cache/lvmcache.c @@ -156,7 +156,8 @@ void lvmcache_lock_vgname(const char *vgname, int read_only __attribute((unused) _update_cache_lock_state(vgname, 1); - _vgs_locked++; + if (strcmp(vgname, VG_GLOBAL)) + _vgs_locked++; } int vgname_is_locked(const char *vgname) @@ -178,7 +179,7 @@ void lvmcache_unlock_vgname(const char *vgname) dm_hash_remove(_lock_hash, vgname); /* FIXME Do this per-VG */ - if (!--_vgs_locked) + if (strcmp(vgname, VG_GLOBAL) && !--_vgs_locked) dev_close_all(); }