]> sourceware.org Git - lvm2.git/commitdiff
Add system_dir parameter to create_toolcontext() and call it system_dir
authorAlasdair Kergon <agk@redhat.com>
Sun, 22 Feb 2009 21:14:37 +0000 (21:14 +0000)
committerAlasdair Kergon <agk@redhat.com>
Sun, 22 Feb 2009 21:14:37 +0000 (21:14 +0000)
everywhere for consistency.

WHATS_NEW
daemons/clvmd/lvm-functions.c
lib/commands/toolcontext.c
lib/commands/toolcontext.h
tools/lvmcmdline.c

index 82e77147f18f0708ada95cbb1296f5a540e27665..c79c77d9335a9edbaa524916270f2a4e92f1a977 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.45 - 
 ===================================
+  Add system_dir parameter to create_toolcontext().
   Add --dataalignment to pvcreate to specify alignment of data area.
   Exclude LCK_CACHE locks from _vg_lock_count, fixing interrupt unblocking.
   Provide da and mda locations in debug message when writing text format label.
index 5cf7eff7019affab8468f18a6dd3b71560ad51c1..d720802a78de0ad40949fb4ab7ce34152d7d09c5 100644 (file)
@@ -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;
        }
index 0a98325ebc43aa4c80714ab4ead1f8d8eac1dc4e..50b10e9a82aab4ec2c3b0aee51790a81eb57d8a6 100644 (file)
@@ -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.
  *
@@ -64,7 +64,7 @@ static int _get_env_vars(struct cmd_context *cmd)
 
        /* Set to "" to avoid using any system directory */
        if ((e = getenv("LVM_SYSTEM_DIR"))) {
-               if (dm_snprintf(cmd->sys_dir, sizeof(cmd->sys_dir),
+               if (dm_snprintf(cmd->system_dir, sizeof(cmd->system_dir),
                                 "%s", e) < 0) {
                        log_error("LVM_SYSTEM_DIR environment variable "
                                  "is too long.");
@@ -393,7 +393,7 @@ static int _load_config_file(struct cmd_context *cmd, const char *tag)
                filler = "_";
 
        if (dm_snprintf(config_file, sizeof(config_file), "%s/lvm%s%s.conf",
-                        cmd->sys_dir, filler, tag) < 0) {
+                        cmd->system_dir, filler, tag) < 0) {
                log_error("LVM_SYSTEM_DIR or tag was too long");
                return 0;
        }
@@ -442,7 +442,7 @@ static int _load_config_file(struct cmd_context *cmd, const char *tag)
 static int _init_lvm_conf(struct cmd_context *cmd)
 {
        /* No config file if LVM_SYSTEM_DIR is empty */
-       if (!*cmd->sys_dir) {
+       if (!*cmd->system_dir) {
                if (!(cmd->cft = create_config_tree(NULL, 0))) {
                        log_error("Failed to create config tree");
                        return 0;
@@ -663,7 +663,7 @@ static int _init_filters(struct cmd_context *cmd, unsigned load_persistent_cache
        if (cache_dir || cache_file_prefix) {
                if (dm_snprintf(cache_file, sizeof(cache_file),
                    "%s%s%s/%s.cache",
-                   cache_dir ? "" : cmd->sys_dir,
+                   cache_dir ? "" : cmd->system_dir,
                    cache_dir ? "" : "/",
                    cache_dir ? : DEFAULT_CACHE_SUBDIR,
                    cache_file_prefix ? : DEFAULT_CACHE_FILE_PREFIX) < 0) {
@@ -673,7 +673,7 @@ static int _init_filters(struct cmd_context *cmd, unsigned load_persistent_cache
        } else if (!(dev_cache = find_config_tree_str(cmd, "devices/cache", NULL)) &&
                   (dm_snprintf(cache_file, sizeof(cache_file),
                                "%s/%s/%s.cache",
-                               cmd->sys_dir, DEFAULT_CACHE_SUBDIR,
+                               cmd->system_dir, DEFAULT_CACHE_SUBDIR,
                                DEFAULT_CACHE_FILE_PREFIX) < 0)) {
                log_error("Persistent cache filename too long.");
                return 0;
@@ -691,7 +691,7 @@ static int _init_filters(struct cmd_context *cmd, unsigned load_persistent_cache
        if (find_config_tree_int(cmd, "devices/write_cache_state", 1))
                cmd->dump_filter = 1;
 
-       if (!*cmd->sys_dir)
+       if (!*cmd->system_dir)
                cmd->dump_filter = 0;
 
        /*
@@ -924,7 +924,7 @@ static int _init_backup(struct cmd_context *cmd)
        char default_dir[PATH_MAX];
        const char *dir;
 
-       if (!cmd->sys_dir) {
+       if (!cmd->system_dir) {
                log_warn("WARNING: Metadata changes will NOT be backed up");
                backup_init(cmd, "", 0);
                archive_init(cmd, "", 0, 0, 0);
@@ -943,10 +943,10 @@ static int _init_backup(struct cmd_context *cmd)
                                         DEFAULT_ARCHIVE_NUMBER);
 
        if (dm_snprintf
-           (default_dir, sizeof(default_dir), "%s/%s", cmd->sys_dir,
+           (default_dir, sizeof(default_dir), "%s/%s", cmd->system_dir,
             DEFAULT_ARCHIVE_SUBDIR) == -1) {
                log_err("Couldn't create default archive path '%s/%s'.",
-                       cmd->sys_dir, DEFAULT_ARCHIVE_SUBDIR);
+                       cmd->system_dir, DEFAULT_ARCHIVE_SUBDIR);
                return 0;
        }
 
@@ -965,10 +965,10 @@ static int _init_backup(struct cmd_context *cmd)
                             DEFAULT_BACKUP_ENABLED);
 
        if (dm_snprintf
-           (default_dir, sizeof(default_dir), "%s/%s", cmd->sys_dir,
+           (default_dir, sizeof(default_dir), "%s/%s", cmd->system_dir,
             DEFAULT_BACKUP_SUBDIR) == -1) {
                log_err("Couldn't create default backup path '%s/%s'.",
-                       cmd->sys_dir, DEFAULT_BACKUP_SUBDIR);
+                       cmd->system_dir, DEFAULT_BACKUP_SUBDIR);
                return 0;
        }
 
@@ -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;
 
@@ -1028,13 +1029,19 @@ struct cmd_context *create_toolcontext(unsigned is_long_lived)
        dm_list_init(&cmd->tags);
        dm_list_init(&cmd->config_files);
 
-       strcpy(cmd->sys_dir, DEFAULT_SYS_DIR);
+       /*
+        * Environment variable LVM_SYSTEM_DIR overrides this below.
+        */
+        if (system_dir)
+               strncpy(cmd->system_dir, system_dir, sizeof(cmd->system_dir) - 1);
+       else
+               strcpy(cmd->system_dir, DEFAULT_SYS_DIR);
 
        if (!_get_env_vars(cmd))
                goto error;
 
        /* Create system directory if it doesn't already exist */
-       if (*cmd->sys_dir && !dm_create_dir(cmd->sys_dir)) {
+       if (*cmd->system_dir && !dm_create_dir(cmd->system_dir)) {
                log_error("Failed to create LVM2 system dir for metadata backups, config "
                          "files and internal cache.");
                log_error("Set environment variable LVM_SYSTEM_DIR to alternative location "
index 7d2aef9cad653aa51e6c94746f8883db21d0f42f..b5d0e2ee7afcd6b52fbec9906c43d31765033eb8 100644 (file)
@@ -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.
  *
@@ -88,13 +88,18 @@ struct cmd_context {
        struct dm_list tags;
        int hosttags;
 
-       char sys_dir[PATH_MAX];
+       char system_dir[PATH_MAX];
        char dev_dir[PATH_MAX];
        char proc_dir[PATH_MAX];
        char sysfs_dir[PATH_MAX];
 };
 
-struct cmd_context *create_toolcontext(unsigned is_long_lived);
+/*
+ * system_dir may be NULL to use the default value.
+ * The environment variable LVM_SYSTEM_DIR always takes precedence.
+ */
+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);
index 880f31ea97d10b275fb1493d8947571ebfb12ece..cb1bfc61294726eb8654912577cdab1ddcf460ff 100644 (file)
@@ -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;
This page took 0.058756 seconds and 5 git commands to generate.