[lvm-devel] [PATCH 1/3] New parameter system_dir for create_toolcontext.
Dave Wysochanski
dwysocha at redhat.com
Thu Feb 19 18:14:42 UTC 2009
On Thu, 2009-02-19 at 20:01 +0100, Thomas Woerner wrote:
> cmd->sys_dir, which defaults to DEFAULT_SYS_DIR, will be set to system_dir i
> the parameter is not NULL. If the environment variable LVM_SYSTEM_DIR is set
> it will overwrite any value of cmd->sys_dir.
>
> Signed-off-by: Thomas Woerner <twoerner at redhat.com>
> ---
> daemons/clvmd/lvm-functions.c | 4 ++--
> lib/commands/toolcontext.c | 16 ++++++++++++++--
> lib/commands/toolcontext.h | 9 +++++++--
> tools/lvmcmdline.c | 4 ++--
> 4 files changed, 25 insertions(+), 8 deletions(-)
>
> diff --git a/daemons/clvmd/lvm-functions.c b/daemons/clvmd/lvm-functions.c
> index 5cf7eff..d720802 100644
> --- a/daemons/clvmd/lvm-functions.c
> +++ b/daemons/clvmd/lvm-functions.c
> @@ -1,6 +1,6 @@
> /*
> * Copyright (C) 2002-2004 Sistina Software, Inc. All rights reserved.
> - * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
> + * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
> *
> * This file is part of LVM2.
> *
> @@ -724,7 +724,7 @@ void lvm_do_backup(const char *vgname)
> /* Called to initialise the LVM context of the daemon */
> int init_lvm(int using_gulm)
> {
> - if (!(cmd = create_toolcontext(1))) {
> + if (!(cmd = create_toolcontext(1, NULL))) {
> log_error("Failed to allocate command context");
> return 0;
> }
> diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c
> index 0a98325..39c644c 100644
> --- a/lib/commands/toolcontext.c
> +++ b/lib/commands/toolcontext.c
> @@ -1,6 +1,6 @@
> /*
> * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
> - * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
> + * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
> *
> * This file is part of LVM2.
> *
> @@ -998,7 +998,8 @@ static void _init_globals(struct cmd_context *cmd)
> }
>
> /* Entry point */
> -struct cmd_context *create_toolcontext(unsigned is_long_lived)
> +struct cmd_context *create_toolcontext(unsigned is_long_lived,
> + const char *system_dir)
> {
> struct cmd_context *cmd;
>
> @@ -1030,6 +1031,17 @@ struct cmd_context *create_toolcontext(unsigned is_long_lived)
>
> strcpy(cmd->sys_dir, DEFAULT_SYS_DIR);
>
> + /*
> + * cmd->sys_dir, which defaults to DEFAULT_SYS_DIR, will be set to
> + * system_dir if the parameter is not NULL. If the environment
> + * variable LVM_SYSTEM_DIR is set, it will overwrite any value of
> + * cmd->sys_dir.
> + */
> + if (system_dir) {
> + strncpy(cmd->sys_dir, system_dir, sizeof(cmd->sys_dir));
> + cmd->sys_dir[sizeof(cmd->sys_dir) - 1] = '\0';
> + }
> +
> if (!_get_env_vars(cmd))
> goto error;
>
> diff --git a/lib/commands/toolcontext.h b/lib/commands/toolcontext.h
> index 7d2aef9..eb2b6ef 100644
> --- a/lib/commands/toolcontext.h
> +++ b/lib/commands/toolcontext.h
> @@ -1,6 +1,6 @@
> /*
> * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
> - * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
> + * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
> *
> * This file is part of LVM2.
> *
> @@ -94,7 +94,12 @@ struct cmd_context {
> char sysfs_dir[PATH_MAX];
> };
>
> -struct cmd_context *create_toolcontext(unsigned is_long_lived);
> +/*
> + * cmd->sys_dir, which defaults to DEFAULT_SYS_DIR, will be set to system_dir
> + * if the parameter is not NULL. If the environment variable LVM_SYSTEM_DIR is
> + * set, it will overwrite any value of cmd->sys_dir.
> + */
> +struct cmd_context *create_toolcontext(unsigned is_long_lived, const char *system_dir);
> void destroy_toolcontext(struct cmd_context *cmd);
> int refresh_toolcontext(struct cmd_context *cmd);
> int config_files_changed(struct cmd_context *cmd);
> diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
> index 880f31e..cb1bfc6 100644
> --- a/tools/lvmcmdline.c
> +++ b/tools/lvmcmdline.c
> @@ -1,6 +1,6 @@
> /*
> * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
> - * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
> + * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
> *
> * This file is part of LVM2.
> *
> @@ -1158,7 +1158,7 @@ struct cmd_context *init_lvm(void)
>
> _cmdline.the_args = &_the_args[0];
>
> - if (!(cmd = create_toolcontext(0)))
> + if (!(cmd = create_toolcontext(0, NULL)))
> return_NULL;
>
> return cmd;
Ack.
More information about the lvm-devel
mailing list