From 98d85f25be6ac4c999ba3c237f46a809e8ccf287 Mon Sep 17 00:00:00 2001 From: Milan Broz Date: Fri, 22 Jan 2010 09:45:29 +0000 Subject: [PATCH] Move error message to locking constructor and print more descriptive message if locking fails instead of "Locking type -1 initialisation failed." Use read-only locking instead of misleading ignorelocking option in message. --- WHATS_NEW | 1 + lib/locking/locking.c | 16 ++++++++++++---- lib/locking/no_locking.c | 2 +- liblvm/lvm_base.c | 1 - tools/lvmcmdline.c | 2 -- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/WHATS_NEW b/WHATS_NEW index 4969c246a..9c3583eaa 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.60 =================================== + Fix failed locking messages to be more descriptive. Version 2.02.59 - 21st January 2010 =================================== diff --git a/lib/locking/locking.c b/lib/locking/locking.c index a2c6a3e8e..54e5e25ae 100644 --- a/lib/locking/locking.c +++ b/lib/locking/locking.c @@ -224,7 +224,7 @@ int init_locking(int type, struct cmd_context *cmd) _blocking_supported = find_config_tree_int(cmd, "global/wait_for_locks", DEFAULT_WAIT_FOR_LOCKS); - + switch (type) { case 0: init_no_locking(&_locking, cmd); @@ -236,8 +236,10 @@ int init_locking(int type, struct cmd_context *cmd) log_very_verbose("%sFile-based locking selected.", _blocking_supported ? "" : "Non-blocking "); - if (!init_file_locking(&_locking, cmd)) + if (!init_file_locking(&_locking, cmd)) { + log_error("File-based locking initialisation failed."); break; + } return 1; #ifdef HAVE_LIBDL @@ -249,8 +251,10 @@ int init_locking(int type, struct cmd_context *cmd) } if (!find_config_tree_int(cmd, "locking/fallback_to_clustered_locking", find_config_tree_int(cmd, "global/fallback_to_clustered_locking", - DEFAULT_FALLBACK_TO_CLUSTERED_LOCKING))) + DEFAULT_FALLBACK_TO_CLUSTERED_LOCKING))) { + log_error("External locking initialisation failed."); break; + } #endif #ifdef CLUSTER_LOCKING_INTERNAL @@ -259,8 +263,10 @@ int init_locking(int type, struct cmd_context *cmd) case 3: log_very_verbose("Cluster locking selected."); - if (!init_cluster_locking(&_locking, cmd)) + if (!init_cluster_locking(&_locking, cmd)) { + log_error("Internal cluster locking initialisation failed."); break; + } return 1; #endif @@ -285,6 +291,8 @@ int init_locking(int type, struct cmd_context *cmd) "be inaccessible."); if (init_file_locking(&_locking, cmd)) return 1; + else + log_error("File-based locking initialisation failed."); } if (!ignorelockingfailure()) diff --git a/lib/locking/no_locking.c b/lib/locking/no_locking.c index 85374b333..9de143b37 100644 --- a/lib/locking/no_locking.c +++ b/lib/locking/no_locking.c @@ -72,7 +72,7 @@ static int _readonly_lock_resource(struct cmd_context *cmd, (flags & LCK_SCOPE_MASK) == LCK_VG && !(flags & LCK_CACHE) && strcmp(resource, VG_GLOBAL)) { - log_error("Write locks are prohibited with --ignorelockingfailure."); + log_error("Write locks are prohibited with read-only locking."); return 0; } diff --git a/liblvm/lvm_base.c b/liblvm/lvm_base.c index b4be90614..ac9469288 100644 --- a/liblvm/lvm_base.c +++ b/liblvm/lvm_base.c @@ -51,7 +51,6 @@ lvm_t lvm_init(const char *system_dir) /* initialize locking */ if (!init_locking(-1, cmd)) { /* FIXME: use EAGAIN as error code here */ - log_error("Locking initialisation failed."); lvm_quit((lvm_t) cmd); return NULL; } diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c index e4b56da00..ad1513d1c 100644 --- a/tools/lvmcmdline.c +++ b/tools/lvmcmdline.c @@ -1027,8 +1027,6 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv) locking_type = -1; if (!init_locking(locking_type, cmd)) { - log_error("Locking type %d initialisation failed.", - locking_type); ret = ECMD_FAILED; goto out; }