diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 42820a7f962b34abab40e8726cd7ae81f3c1f3f9..6a8fd5d12794bdeb7d27fd98c91aca7887dbb5e2 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -5317,7 +5317,6 @@ virDomainObjIsDuplicate(virDomainObjListPtr doms, } dupVM = 1; - virDomainObjUnlock(vm); } else { /* UUID does not match, but if a name matches, refuse it */ vm = virDomainFindByName(doms, def->name); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index c9b5ac268d76d247aa6a4254e75752b50b28fdb3..43d20ea2a8669a3b78e9a58d88307bce3a9825fe 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -229,6 +229,7 @@ static int qemuDomainObjBeginJobWithDriver(struct qemud_driver *driver, else virReportSystemError(NULL, errno, "%s", _("cannot acquire job mutex")); + qemuDriverLock(driver); return -1; } } @@ -3471,9 +3472,9 @@ static int qemudDomainSave(virDomainPtr dom, if (header.compressed == QEMUD_SAVE_FORMAT_RAW) { const char *args[] = { "cat", NULL }; qemuDomainObjPrivatePtr priv = vm->privateData; - qemuDomainObjEnterMonitor(vm); + qemuDomainObjEnterMonitorWithDriver(driver, vm); rc = qemuMonitorMigrateToCommand(priv->mon, 0, args, path); - qemuDomainObjExitMonitor(vm); + qemuDomainObjExitMonitorWithDriver(driver, vm); } else { const char *prog = qemudSaveCompressionTypeToString(header.compressed); qemuDomainObjPrivatePtr priv = vm->privateData; @@ -3482,9 +3483,9 @@ static int qemudDomainSave(virDomainPtr dom, "-c", NULL }; - qemuDomainObjEnterMonitor(vm); + qemuDomainObjEnterMonitorWithDriver(driver, vm); rc = qemuMonitorMigrateToCommand(priv->mon, 0, args, path); - qemuDomainObjExitMonitor(vm); + qemuDomainObjExitMonitorWithDriver(driver, vm); } if (rc < 0)