On Sat, Jan 29, 2011 at 11:41:33AM -0700, Eric Blake wrote:
On 01/28/2011 06:21 AM, Daniel P. Berrange wrote:
> -static int qemudStartVMDaemon(virConnectPtr conn,
> - struct qemud_driver *driver,
...
> - if (!(cmd = qemuBuildCommandLine(conn, driver, vm->def, priv->monConfig,
> - priv->monJSON != 0, qemuCmdFlags,
> - migrateFrom, stdin_fd,
> - vm->current_snapshot, vmop)))
> - goto cleanup;
> -
> - if (qemuDomainSnapshotSetCurrentInactive(vm, driver->snapshotDir) < 0)
> - goto cleanup;
Why was the SetCurrentInactive line commented out in the move?
It is already invoked in the caller, so it should be redundant
here, and it causes a circular dependency if we leave it in.
> +static void
> +qemuProcessReconnect(void *payload, const char *name ATTRIBUTE_UNUSED, void
*opaque)
> +{
> + if (virDomainObjUnref(obj) > 0) {
> + /* We can't get the monitor back, so must kill the VM
> + * to remove danger of it ending up running twice if
> + * user tries to start it again later */
> + qemudShutdownVMDaemon(driver, obj, 0);
Wouldn't this cause a compile error, since you renamed the function to
qemuProcessStop? Indeed:
cc1: warnings being treated as errors
qemu/qemu_process.c: In function 'qemuProcessReconnect':
qemu/qemu_process.c:1854:9: error: implicit declaration of function
'qemudShutdownVMDaemon' [-Wimplicit-function-declaration]
qemu/qemu_process.c:1854:9: error: nested extern declaration of
'qemudShutdownVMDaemon' [-Wnested-externs]
qemu/qemu_process.c: In function 'qemuProcessStart':
qemu/qemu_process.c:1949:9: error: implicit declaration of function
'fstat' [-Wimplicit-function-declaration]
qemu/qemu_process.c:1949:9: error: nested extern declaration of 'fstat'
[-Wnested-externs]
qemu/qemu_process.c:1954:9: error: implicit declaration of function
'S_ISFIFO' [-Wimplicit-function-declaration]
qemu/qemu_process.c:1954:9: error: nested extern declaration of
'S_ISFIFO' [-Wnested-externs]
This is a result of rebasing just before posting it. The fixes
are trivial
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 1e3dea2..76c48dd 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -24,6 +24,7 @@
#include <fcntl.h>
#include <unistd.h>
#include <signal.h>
+#include <sys/stat.h>
#include "qemu_process.h"
#include "qemu_domain.h"
@@ -1851,7 +1852,7 @@ error:
/* We can't get the monitor back, so must kill the VM
* to remove danger of it ending up running twice if
* user tries to start it again later */
- qemudShutdownVMDaemon(driver, obj, 0);
+ qemuProcessStop(driver, obj, 0);
if (!obj->persistent)
virDomainRemoveInactive(&driver->domains, obj);
else
Daniel