summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2012-09-17 16:34:59 +0100
committerRichard W.M. Jones <rjones@redhat.com>2012-09-17 16:34:59 +0100
commitf9f0767e20847734db3747c06b4ff11729a62a07 (patch)
tree37a3c9629c87f15959e1fccfadd5f4c23cd789cf /src
parenta2dc3dbad0b9e6ee827247ee3ceefca480f5a052 (diff)
downloadlibguestfs-f9f0767e20847734db3747c06b4ff11729a62a07.tar.gz
libguestfs-f9f0767e20847734db3747c06b4ff11729a62a07.tar.xz
libguestfs-f9f0767e20847734db3747c06b4ff11729a62a07.zip
launch: libvirt: Pass TMPDIR to qemu subprocess.
Diffstat (limited to 'src')
-rw-r--r--src/launch-libvirt.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/launch-libvirt.c b/src/launch-libvirt.c
index 7d748750..c7563372 100644
--- a/src/launch-libvirt.c
+++ b/src/launch-libvirt.c
@@ -1011,6 +1011,7 @@ construct_libvirt_xml_qemu_cmdline (guestfs_h *g, xmlTextWriterPtr xo)
size_t drv_index;
char attr[256];
struct qemu_param *qp;
+ char *p;
XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "qemu:commandline"));
@@ -1052,6 +1053,19 @@ construct_libvirt_xml_qemu_cmdline (guestfs_h *g, xmlTextWriterPtr xo)
BAD_CAST attr));
XMLERROR (-1, xmlTextWriterEndElement (xo));
+ /* We need to ensure the snapshots are created in $TMPDIR (RHBZ#856619). */
+ p = getenv ("TMPDIR");
+ if (p) {
+ XMLERROR (-1, xmlTextWriterStartElement (xo, BAD_CAST "qemu:env"));
+ XMLERROR (-1,
+ xmlTextWriterWriteAttribute (xo, BAD_CAST "name",
+ BAD_CAST "TMPDIR"));
+ XMLERROR (-1,
+ xmlTextWriterWriteAttribute (xo, BAD_CAST "value",
+ BAD_CAST p));
+ XMLERROR (-1, xmlTextWriterEndElement (xo));
+ }
+
/* Workaround because libvirt user networking cannot specify "net="
* parameter.
*/