
- /* 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