daemon: copy entire lvm directory

cp will fail if /etc/lvm is an empty directory. Copy the entire
directory and adjust environment variable.

Signed-off-by: Olaf Hering <olaf@aepfle.de>

RWMJ:
 - Fixed a couple of whitespace issues.
This commit is contained in:
Olaf Hering
2013-01-02 16:13:06 +01:00
committed by Richard W.M. Jones
parent a710c42f0f
commit 9fd41abd40

View File

@@ -47,7 +47,7 @@ void
copy_lvm (void)
{
struct stat statbuf;
char cmd[64];
char cmd[64], env[64];
int r;
/* If /etc/lvm directory doesn't exist (or isn't a directory) assume
@@ -68,8 +68,8 @@ copy_lvm (void)
exit (EXIT_FAILURE);
}
/* Hopefully no dotfiles in there ... XXX */
snprintf (cmd, sizeof cmd, "%s -a /etc/lvm/* %s", str_cp, lvm_system_dir);
/* Copy the entire directory */
snprintf (cmd, sizeof cmd, "%s -a /etc/lvm/ %s", str_cp, lvm_system_dir);
r = system (cmd);
if (r == -1) {
perror (cmd);
@@ -85,7 +85,8 @@ copy_lvm (void)
}
/* Set environment variable so we use the copy. */
setenv ("LVM_SYSTEM_DIR", lvm_system_dir, 1);
snprintf (env, sizeof env, "%s/lvm", lvm_system_dir);
setenv ("LVM_SYSTEM_DIR", env, 1);
/* Set a handler to remove the temporary directory at exit. */
atexit (rm_lvm_system_dir);