summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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.
*/