Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=f488bbb3dce8e5bc…
Commit: f488bbb3dce8e5bccd7f89f7501706a0c5caa22c
Parent: 0000000000000000000000000000000000000000
Author: Alasdair G Kergon <agk(a)redhat.com>
AuthorDate: 2015-07-24 22:20 +0000
Committer: Alasdair G Kergon <agk(a)redhat.com>
CommitterDate: 2015-07-24 22:20 +0000
annotated tag: v2_02_126 has been created
at f488bbb3dce8e5bccd7f89f7501706a0c5caa22c (tag)
tagging 33eb7d7dfb772c432251f0926f6a0fb8fb824772 (commit)
replaces v2_02_125
Release 2.02.126.
83 files changed, 1687 insertions(+), 759 deletions(-)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iEYEABECAAYFAlWyumkACgkQIoGRwVZ+LBeYXwCfcFW6vdZJ68vZpjlePKudbAyJ
XsIAn3rSLnlD1LeC1CDMpjKm1UlSFNHB
=BvSx
-----END PGP SIGNATURE-----
Alasdair G Kergon (8):
post-release
alloc: Fix lvextend failure when varying stripes.
test: Ignore known concurrent VG clvmd failure.
log: Add DM_ABORT_ON_INTERNAL_ERRORS lvm override.
libdm: Use wrappers for all malloc functions.
clvmd: Fix freeze if client dies holding locks.
tools: Streamline long option hyphen removal.
pre-release
Andy Grover (1):
man: add lvmlocal.conf to config cascade
David Teigland (33):
toollib: skip processing the sanlock LV unless named or all
lvmlockctl: fix uninitialized names
lvmlockd: fix unreachable code
lvmlockd: remove log_error instances for normal conditions
vgchange: don't disable VG lock in lock_stop
coverity: cleanup related to lvmlockd
metadata: vg_validate lock_args
metadata: add comments describing lock_args for lvmlockd
pvcreate: remove recent warning message
vgchange: fix disallowed LV types in lockd VG
metadata: fix duplicated LV flag
lockd: disable part of lock_args validation
lvconvert: disallow splitting in lockd VGs
vgchange: allow changing to lockd type when mirrors exist
lockd: note that external origins don't work in lockd VGs
vgexport: do not allow lockd VG to be exported
lockd: allow nolocking and readonly options
lockd: allow vgexport and vgimport
man lvmlockd: update method for changing lock type
lockd: fix error message after a failing to get lock
vgchange: fix lock-start filtering and waiting
metadata: change function name to _allow_extra_system_id
vgexport: fix the all VGs case
vgimport: fix the all VGs case
lockd: fix error cases when built without lvmlockd
lvmlockd: improve errors when lvm is built without a lock manager
vgchange/lvchange: enforce the shared VG lock from lvmlockd
lvconvert: fix polling outside of core lvconvert
lvconvert: merge polling fixes for lockd
pvscan: skip autoactivation for lockd VGs
lvmlockd: improve check for duplicate global locks
Fix dehyphenation cases
lockd: remove an unreachable global lock condition
Marian Csontos (6):
spec: Update to use enable_lockd_*
spec: Move lvm2-lockd into separate package
test: Fix syntax error in prepare_devs
lvmpolld: Fix segfault on 32 bit architectures
test: Fix hardcoded /usr/share in testsuite
test: Help, default and relative paths in runner
Ondrej Kozina (2):
lvconvert: retain retcode consistency
lvconvert: remove unused struct members
Peter Rajnoha (22):
config: add find_config_tree_array
config: replace find_config_tree_node with find_config_tree_array where appropriate
coverity: fix resource leaks
coverity: fix uninitialized values and other reported problems
coverity: missing break in switch expression
coverity: previous commit - not "break" but "fall through"
coverity: fix missing initialization
coverity: fix NULL check in lv->lvid.s
lvmconf: fix ignored --startstopservices in lvmconf ... --mirrorservice on systemd
coverity: fix possible invalid dereferences
coverity: missing return value for dm_split_lvm_name pass proper DM name instead of NULL value
coverity: missing return value checks
libdaemon: config_make_nodes_v needs fixing
config: {thin,cache}_{check,repair}_options are never undefined
config: add "defaulting to" message in case we fall back to defaults in find_config_tree_array
config: use find_config_tree_array for all arrays
config: also log the value used if defined in config, not just defaults
config: make a difference between "not found" and "is empty" in log msg for devices/preferred_names
wiping: ignore errors during detection if use_blkid_wiping=1 and --force is used
wiping: log_warn instead of log_error if blkid wipe ignored for a signature
wiping: add "Wiping skipped." for the message context to be complete
config: add CFG_SECTION_NO_CHECK flag
Zdenek Kabelac (11):
coverity: fix regresions from 16e9b32c2f1
tests: follow symlinks
thin: fix warning for overprovisioning
cache: move setting of cache policy
cache: handle policy_name separately
cache: capture missing policy name
cache: enhance cache-pool validation
makefiles: adding target for generating ctags
cleanup: drop duplicated seg test
cleanup: avoid double assign
cleanup: drop unused header file
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=c1f5ac3eca1ebccc…
Commit: c1f5ac3eca1ebccc08fdc3f9304e3d85fa115146
Parent: bcb875dcb19323ab62f2f3b409c4bda4ce8267d1
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Thu Jul 23 11:00:03 2015 -0500
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Fri Jul 24 10:56:08 2015 -0500
lockd: remove an unreachable global lock condition
There is no longer an "enable" option for the global lock,
so remove the bit of code that was checking for it. It
was an optional variation anyway, and not one that was likely
to be used.
Also update the corresponding comment describing global lock
creation.
---
lib/locking/lvmlockd.c | 63 ++++++++++++-----------------------------------
1 files changed, 16 insertions(+), 47 deletions(-)
diff --git a/lib/locking/lvmlockd.c b/lib/locking/lvmlockd.c
index ac8c155..e9d7882 100644
--- a/lib/locking/lvmlockd.c
+++ b/lib/locking/lvmlockd.c
@@ -1169,55 +1169,24 @@ int lockd_gl_create(struct cmd_context *cmd, const char *def_mode, const char *v
return 1;
/*
- * This is the explicit sanlock bootstrap condition for
- * proceding without the global lock: a chicken/egg case
- * for the first sanlock VG that is created.
+ * This is the sanlock bootstrap condition for proceding
+ * without the global lock: a chicken/egg case for the first
+ * sanlock VG that is created. When creating the first
+ * sanlock VG, there is no global lock to acquire because
+ * the gl will exist in the VG being created. So, we
+ * skip acquiring the global lock when creating this initial
+ * VG, and enable the global lock in this VG.
*
- * When creating the first sanlock VG, there is no global
- * lock to acquire because the gl will exist in the VG
- * being created. The "enable" option makes explicit that
- * this is expected:
+ * Here we assume that this is an initial bootstrap condition
+ * based on the fact that lvmlockd has seen no lockd VGs.
+ * (A commmand line option could be added to allow the user
+ * to make this initial bootstrap condition explicit.)
*
- * vgcreate --lock-type sanlock --lock-gl enable
- *
- * There are three indications that this is the unique
- * first-sanlock-vg bootstrap case:
- *
- * - result from lvmlockd is -ENOLS because lvmlockd found
- * no lockspace for this VG; expected because it's being
- * created here.
- *
- * - result flag LD_RF_NO_GL_LS from lvmlockd means that
- * lvmlockd has seen no other lockspace with a global lock.
- * This implies that this is probably the first sanlock vg
- * to be created. If other sanlock vgs exist, the global
- * lock should be available from one of them.
- *
- * - command line lock-gl arg is "enable" which means the
- * user expects this to be the first sanlock vg, and the
- * global lock should be enabled in it.
- */
-
- if ((lockd_flags & LD_RF_NO_GL_LS) &&
- !strcmp(vg_lock_type, "sanlock") &&
- !strcmp(mode, "enable")) {
- log_print_unless_silent("Enabling sanlock global lock");
- lvmetad_validate_global_cache(cmd, 1);
- return 1;
- }
-
- /*
- * This is an implicit sanlock bootstrap condition for
- * proceeding without the global lock. The command line does
- * not indicate explicitly that this is a bootstrap situation
- * (via "enable"), but it seems likely to be because lvmlockd
- * has seen no lockd-type vgs. It is possible that a global
- * lock does exist in a vg that has not yet been seen. If that
- * vg appears after this creates a new vg with a new enabled
- * gl, then there will be two enabled global locks, and one
- * will need to be disabled. (We could instead return an error
- * here and insist with an error message that the --lock-gl
- * enable option be used to exercise the explicit case above.)
+ * That assumption might be wrong. It is possible that a global
+ * lock does exist in a VG that has not yet been seen. If that
+ * VG appears after this creates a new VG with a new enabled
+ * global lock, then there will be two VGs containing enabled
+ * global locks, and one will need to be disabled by the user.
*/
if ((lockd_flags & LD_RF_NO_GL_LS) &&