[libvirt] [PATCH] qemu: fallback to HMP drive_add/drive_del

Jiri Denemark jdenemar at redhat.com
Fri Mar 11 15:05:16 UTC 2011


> -        /* See if drive_del isn't supported */
> -        if (qemuMonitorJSONHasError(reply, "CommandNotFound")) {
> -            VIR_ERROR0(_("deleting disk is not supported.  "
> -                        "This may leak data if disk is reassigned"));
> -            ret = 1;
> -            goto cleanup;
> -        } else if (qemuMonitorJSONHasError(reply, "DeviceNotFound")) {
> -            /* NB: device not found errors mean the drive was
> -             * auto-deleted and we ignore the error */
> -            ret = 0;
> -        } else {
> -            ret = qemuMonitorJSONCheckError(cmd, reply);
> -        }
> +    if (qemuMonitorJSONHasError(reply, "CommandNotFound")) {
> +        VIR_DEBUG0(_("drive_del command not found, trying HMP"));
> +        ret = qemuMonitorTextDriveDel(mon, drivestr);
> +    } else if (qemuMonitorJSONHasError(reply, "DeviceNotFound")) {
> +        /* NB: device not found errors mean the drive was
> +         * auto-deleted and we ignore the error */
> +        ret = 0;
> +    } else {
> +        ret = qemuMonitorJSONCheckError(cmd, reply);
>      }

Looks good, although I think we should issue the "deleting disk is not
supported. This may leak data if disk is reassigned" error also in case
human-monitor-command is not supported. But that will need some more work on
the HMP infrastructure since it's not possible to get this from
qemuMonitorText* function that we call.

Jirka




More information about the libvir-list mailing list