[Libguestfs] [PATCH] daemon: copy entire lvm directory

Olaf Hering olaf at aepfle.de
Wed Jan 2 15:13:06 UTC 2013


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

Signed-off-by: Olaf Hering <olaf at 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




More information about the Libguestfs mailing list