diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 38d4a861d1..29049dc495 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -1492,7 +1492,7 @@ qemuSetUnprivSGIO(virDomainDeviceDefPtr dev) int qemuDriverAllocateID(virQEMUDriverPtr driver) { - return virAtomicIntInc(&driver->nextvmid); + return virAtomicIntInc(&driver->lastvmid); } diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h index 3f739291ed..ed9cd46696 100644 --- a/src/qemu/qemu_conf.h +++ b/src/qemu/qemu_conf.h @@ -192,7 +192,7 @@ struct _virQEMUDriver { virThreadPoolPtr workerPool; /* Atomic increment only */ - int nextvmid; + int lastvmid; /* Atomic inc/dec only */ unsigned int nactive; diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index a761448eba..5b226395e8 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -611,8 +611,8 @@ qemuDomainFindMaxID(virDomainObjPtr vm, { int *driver_maxid = data; - if (vm->def->id >= *driver_maxid) - *driver_maxid = vm->def->id + 1; + if (vm->def->id > *driver_maxid) + *driver_maxid = vm->def->id; return 0; } @@ -649,9 +649,6 @@ qemuStateInitialize(bool privileged, qemu_driver->inhibitCallback = callback; qemu_driver->inhibitOpaque = opaque; - /* Don't have a dom0 so start from 1 */ - qemu_driver->nextvmid = 1; - qemu_driver->privileged = privileged; if (!(qemu_driver->domains = virDomainObjListNew())) @@ -909,7 +906,7 @@ qemuStateInitialize(bool privileged, * threads */ virDomainObjListForEach(qemu_driver->domains, qemuDomainFindMaxID, - &qemu_driver->nextvmid); + &qemu_driver->lastvmid); virDomainObjListForEach(qemu_driver->domains, qemuDomainNetsRestart,