forked from pool/libguestfs
51 lines
1.4 KiB
Diff
51 lines
1.4 KiB
Diff
|
From 8e911927825bcb326359d21ff38f0563a7346a10 Mon Sep 17 00:00:00 2001
|
||
|
From: Olaf Hering <olaf@aepfle.de>
|
||
|
Date: Wed, 2 Jan 2013 15:27:39 +0100
|
||
|
Subject: [PATCH] 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>
|
||
|
---
|
||
|
daemon/lvm-filter.c | 9 +++++----
|
||
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
||
|
|
||
|
diff --git a/daemon/lvm-filter.c b/daemon/lvm-filter.c
|
||
|
index 52d6b3d..204e238 100644
|
||
|
--- a/daemon/lvm-filter.c
|
||
|
+++ b/daemon/lvm-filter.c
|
||
|
@@ -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);
|
||
|
--
|
||
|
1.8.0.1
|
||
|
|