[lvm-devel] [PATCH] Do not print "-1" as locking type if locking fails.
Dave Wysochanski
dwysocha at redhat.com
Thu Jan 21 17:23:23 UTC 2010
On Thu, 2010-01-21 at 17:37 +0100, Milan Broz wrote:
> Move error message to locking constructor and print
> more descriptive message if locking fails instead of
> "Locking type -1 initialisation failed."
> ---
> lib/locking/locking.c | 16 ++++++++++++----
> liblvm/lvm_base.c | 1 -
> tools/lvmcmdline.c | 2 --
> 3 files changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/lib/locking/locking.c b/lib/locking/locking.c
> index a2c6a3e..54e5e25 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
This looks strange and inconsistent with the rest of the code.
IMO the message be directly under the above code when
init_external_locking() fails, as the others are.
>
> #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/liblvm/lvm_base.c b/liblvm/lvm_base.c
> index b4be906..ac94692 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 e4b56da..ad1513d 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;
> }
The rest of the patch looks fine. Ack.
More information about the lvm-devel
mailing list