Commit f1f68ca33433 did not report an error if virFileMakePath()
returned -1. Well, who would've guessed function with name starting
with 'vir' sets an errno instead of reporting an error the libvirt way.
Anyway, let's fix it, so the output changes from:
$ virsh start arm
error: Failed to start domain arm
error: An error occurred, but the cause is unknown
to:
$ virsh start arm
error: Failed to start domain arm
error: Cannot create directory '/var/lib/libvirt/qemu/domain-arm': Not
a directory
Resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=1146886
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
src/qemu/qemu_process.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index f7eb2b609437..d9a0942c4dfd 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -4734,8 +4734,10 @@ int qemuProcessStart(virConnectPtr conn,
if (virAsprintf(&tmppath, "%s/domain-%s", cfg->libDir,
vm->def->name) < 0)
goto cleanup;
- if (virFileMakePath(tmppath) < 0)
+ if (virFileMakePath(tmppath) < 0) {
+ virReportSystemError(errno, _("Cannot create directory '%s'"),
tmppath);
goto cleanup;
+ }
if (virSecurityManagerDomainSetDirLabel(driver->securityManager,
vm->def, tmppath) < 0)
@@ -4747,8 +4749,10 @@ int qemuProcessStart(virConnectPtr conn,
cfg->channelTargetDir, vm->def->name) < 0)
goto cleanup;
- if (virFileMakePath(tmppath) < 0)
+ if (virFileMakePath(tmppath) < 0) {
+ virReportSystemError(errno, _("Cannot create directory '%s'"),
tmppath);
goto cleanup;
+ }
if (virSecurityManagerDomainSetDirLabel(driver->securityManager,
vm->def, tmppath) < 0)
--
2.5.1