diff --git a/docs/news.xml b/docs/news.xml
index 649350a904..8ef9da78b7 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -71,6 +71,15 @@
+
+
+ qemu: Create memory_backing_dir on startup
+
+
+ Libvirt's policy is that directories are created on startup if
+ they don't exist. We've missed this one.
+
+
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 67f54282a0..fcab7ddf82 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -706,6 +706,11 @@ qemuStateInitialize(bool privileged,
cfg->nvramDir);
goto error;
}
+ if (virFileMakePath(cfg->memoryBackingDir) < 0) {
+ virReportSystemError(errno, _("Failed to create memory backing dir %s"),
+ cfg->memoryBackingDir);
+ goto error;
+ }
qemu_driver->qemuImgBinary = virFindFileInPath("qemu-img");
@@ -830,6 +835,13 @@ qemuStateInitialize(bool privileged,
(int) cfg->group);
goto error;
}
+ if (chown(cfg->memoryBackingDir, cfg->user, cfg->group) < 0) {
+ virReportSystemError(errno,
+ _("unable to set ownership of '%s' to %d:%d"),
+ cfg->memoryBackingDir, (int) cfg->user,
+ (int) cfg->group);
+ goto error;
+ }
run_uid = cfg->user;
run_gid = cfg->group;