[libvirt] [PATCH] qemu: check backing chains even when cgroup is omitted

https://bugzilla.redhat.com/show_bug.cgi?id=896685 points out a regression caused by commit 38c4a9c - libvirt only labels the backing chain if the backing chain cache is populated, but the code to populate the cache was only conditionally performed if cgroup labeling was necessary. * src/qemu/qemu_cgroup.c (qemuSetupCgroup): Hoist cache setup... * src/qemu/qemu_process.c (qemuProcessStart): ...earlier into caller, where it is now unconditional. --- src/qemu/qemu_cgroup.c | 4 +--- src/qemu/qemu_process.c | 5 +++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c index 4fde1af..e65b486 100644 --- a/src/qemu/qemu_cgroup.c +++ b/src/qemu/qemu_cgroup.c @@ -234,9 +234,7 @@ int qemuSetupCgroup(virQEMUDriverPtr driver, } for (i = 0; i < vm->def->ndisks ; i++) { - if (qemuDomainDetermineDiskChain(driver, vm->def->disks[i], - false) < 0 || - qemuSetupDiskCgroup(vm, cgroup, vm->def->disks[i]) < 0) + if (qemuSetupDiskCgroup(vm, cgroup, vm->def->disks[i]) < 0) goto cleanup; } diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 476e3ed..af8222b 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -3706,6 +3706,11 @@ int qemuProcessStart(virConnectPtr conn, goto cleanup; VIR_DEBUG("Checking for CDROM and floppy presence"); + for (i = 0; i < vm->def->ndisks ; i++) { + if (qemuDomainDetermineDiskChain(driver, vm->def->disks[i], + false) < 0) + goto cleanup; + } if (qemuDomainCheckDiskPresence(driver, vm, flags & VIR_QEMU_PROCESS_START_COLD) < 0) goto cleanup; -- 1.8.1.2

On Wed, Feb 20, 2013 at 03:38:36PM -0700, Eric Blake wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=896685 points out a regression caused by commit 38c4a9c - libvirt only labels the backing chain if the backing chain cache is populated, but the code to populate the cache was only conditionally performed if cgroup labeling was necessary.
* src/qemu/qemu_cgroup.c (qemuSetupCgroup): Hoist cache setup... * src/qemu/qemu_process.c (qemuProcessStart): ...earlier into caller, where it is now unconditional. --- src/qemu/qemu_cgroup.c | 4 +--- src/qemu/qemu_process.c | 5 +++++ 2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c index 4fde1af..e65b486 100644 --- a/src/qemu/qemu_cgroup.c +++ b/src/qemu/qemu_cgroup.c @@ -234,9 +234,7 @@ int qemuSetupCgroup(virQEMUDriverPtr driver, }
for (i = 0; i < vm->def->ndisks ; i++) { - if (qemuDomainDetermineDiskChain(driver, vm->def->disks[i], - false) < 0 || - qemuSetupDiskCgroup(vm, cgroup, vm->def->disks[i]) < 0) + if (qemuSetupDiskCgroup(vm, cgroup, vm->def->disks[i]) < 0) goto cleanup; }
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 476e3ed..af8222b 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -3706,6 +3706,11 @@ int qemuProcessStart(virConnectPtr conn, goto cleanup;
VIR_DEBUG("Checking for CDROM and floppy presence"); + for (i = 0; i < vm->def->ndisks ; i++) { + if (qemuDomainDetermineDiskChain(driver, vm->def->disks[i], + false) < 0) + goto cleanup; + } if (qemuDomainCheckDiskPresence(driver, vm, flags & VIR_QEMU_PROCESS_START_COLD) < 0) goto cleanup;
ACK Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|

On 02/21/2013 03:44 AM, Daniel P. Berrange wrote:
On Wed, Feb 20, 2013 at 03:38:36PM -0700, Eric Blake wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=896685 points out a regression caused by commit 38c4a9c - libvirt only labels the backing chain if the backing chain cache is populated, but the code to populate the cache was only conditionally performed if cgroup labeling was necessary.
ACK
Thanks; pushed. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
participants (2)
-
Daniel P. Berrange
-
Eric Blake