[libvirt] [PATCH] qemu: Fix media eject with qemu-0.12.*

Laine Stump laine at laine.org
Wed Mar 30 18:16:37 UTC 2011


On 03/29/2011 10:10 AM, Jiri Denemark wrote:
> In qemu-0.12.* "device '...' is locked" message was changed to "Device
> ..." so libvirt was no longer detecting this as an error.
> ---
>   bootstrap.conf               |    1 +
>   src/qemu/qemu_monitor_text.c |    2 +-
>   2 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/bootstrap.conf b/bootstrap.conf
> index 6070204..6e10828 100644
> --- a/bootstrap.conf
> +++ b/bootstrap.conf
> @@ -63,6 +63,7 @@ sigpipe
>   snprintf
>   socket
>   stpcpy
> +strcasestr
>   strchrnul
>   strndup
>   strerror
> diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c
> index 75b2995..7ebe62e 100644
> --- a/src/qemu/qemu_monitor_text.c
> +++ b/src/qemu/qemu_monitor_text.c
> @@ -934,7 +934,7 @@ int qemuMonitorTextEjectMedia(qemuMonitorPtr mon,
>       /* If the command failed qemu prints:
>        * device not found, device is locked ...
>        * No message is printed on success it seems */
> -    if (strstr(reply, "device ")) {
> +    if (strcasestr(reply, "device ")) {
>           qemuReportError(VIR_ERR_OPERATION_FAILED,
>                           _("could not eject media on %s: %s"), devname, reply);
>           goto cleanup;

Even though strcasestr is a non-standard function, you're using gnulib 
for it, so that shouldn't be a problem. And your change will work for 
both old and new qemus.

ACK.




More information about the libvir-list mailing list