summaryrefslogtreecommitdiffstats
path: root/tools/lvm.c
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2002-01-09 19:16:48 +0000
committerAlasdair Kergon <agk@redhat.com>2002-01-09 19:16:48 +0000
commit952d12a5f51d9693a177f1bd547cb23c79017728 (patch)
tree78fc4cb5de0290e22e5de47ebaa451b5df9eb3ed /tools/lvm.c
parent4bbf2c34182272d719a1753cf3cdada0fa17f9e4 (diff)
downloadlvm2-952d12a5f51d9693a177f1bd547cb23c79017728.tar.gz
lvm2-952d12a5f51d9693a177f1bd547cb23c79017728.tar.xz
lvm2-952d12a5f51d9693a177f1bd547cb23c79017728.zip
o Rename many occurrences of 'backup' to 'archive' to reduce confusion.
o Extract file creation/renaming code into a library and change backup code to use it too. o Support umask. o Bring lvm.conf man page up-to-date.
Diffstat (limited to 'tools/lvm.c')
-rw-r--r--tools/lvm.c31
1 files changed, 22 insertions, 9 deletions
diff --git a/tools/lvm.c b/tools/lvm.c
index ad705610..cd9655b4 100644
--- a/tools/lvm.c
+++ b/tools/lvm.c
@@ -65,6 +65,8 @@ struct config_info {
int archive; /* should we archive ? */
int backup; /* should we backup ? */
+
+ mode_t umask;
};
static struct config_info _default_settings;
@@ -661,6 +663,15 @@ static void __init_log(struct config_file *cf)
const char *log_file = find_config_str(cf->root, "log/file", '/', 0);
+ _default_settings.debug =
+ find_config_int(cf->root, "log/level", '/', 0);
+ _default_settings.verbose =
+ find_config_int(cf->root, "log/verbose", '/', 0);
+ _default_settings.test = find_config_int(cf->root, "log/test", '/', 0);
+
+ init_debug(_default_settings.debug);
+ init_verbose(_default_settings.verbose);
+
if (find_config_int(cf->root, "log/overwrite", '/', 0))
open_mode = "w";
@@ -672,13 +683,6 @@ static void __init_log(struct config_file *cf)
init_log(_log);
}
- _default_settings.debug =
- find_config_int(cf->root, "log/level", '/', 0);
-
- _default_settings.verbose =
- find_config_int(cf->root, "log/verbose", '/', 0);
-
- _default_settings.test = find_config_int(cf->root, "log/test", '/', 0);
}
static int _init_backup(struct config_file *cf)
@@ -869,6 +873,7 @@ static int init(void)
{
struct stat info;
char config_file[PATH_MAX] = "";
+ mode_t old_umask;
if (!_get_env_vars())
return 0;
@@ -890,11 +895,11 @@ static int init(void)
/* Use LOG_USER for syslog messages by default */
init_syslog(LOG_USER);
- _init_rand();
-
/* send log messages to stderr for now */
init_log(stderr);
+ _init_rand();
+
if (*_sys_dir && lvm_snprintf(config_file, sizeof(config_file),
"%s/lvm.conf", _sys_dir) < 0) {
log_error("lvm_sys_dir was too long");
@@ -912,6 +917,14 @@ static int init(void)
__init_log(cmd->cf);
}
+ _default_settings.umask = find_config_int(cmd->cf->root,
+ "global/umask", '/',
+ DEFAULT_UMASK);
+
+ if ((old_umask = umask((mode_t)_default_settings.umask)) !=
+ (mode_t)_default_settings.umask)
+ log_verbose("Set umask to %04o", _default_settings.umask);
+
if (lvm_snprintf(_dev_dir, sizeof(_dev_dir), "%s/",
find_config_str(cmd->cf->root, "devices/dir",
'/', DEFAULT_DEV_DIR)) < 0) {