
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