[libvirt] [PATCH] qemu: Don't delete USB device on failed qemuPrepareHostdevUSBDevices

Guannan Ren gren at redhat.com
Thu May 17 14:10:35 UTC 2012


On 05/17/2012 08:34 PM, Michal Privoznik wrote:
> If qemuPrepareHostdevUSBDevices fail it will roll back devices added
> to the driver list of used devices. However, if it may fail because
> the device is being used already. But then again - with roll back.
> Therefore don't try to remove a usb device manually if the function
> fail. Although, we want to remove the device if any operation
> performed afterwards fail.
> ---
>   src/qemu/qemu_hotplug.c |    4 +++-
>   1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
> index 9b60816..dfca7e2 100644
> --- a/src/qemu/qemu_hotplug.c
> +++ b/src/qemu/qemu_hotplug.c
> @@ -1173,8 +1173,10 @@ int qemuDomainAttachHostDevice(struct qemud_driver *driver,
>               goto cleanup;
>           }
>
> -        if (qemuPrepareHostdevUSBDevices(driver, vm->def->name, list)<  0)
> +        if (qemuPrepareHostdevUSBDevices(driver, vm->def->name, list)<  0) {
> +            usb = NULL;
>               goto cleanup;
> +        }
>
>           usbDeviceListSteal(list, usb);
>       }

    I wrote the original code, so I give my ACK here.

    Guannan Ren




More information about the libvir-list mailing list