[libvirt] [PATCH v2 4/8] undefine: Implement internal API for qemu driver
Osier Yang
jyang at redhat.com
Sat Jul 16 03:17:22 UTC 2011
于 2011年07月16日 05:24, Eric Blake 写道:
> On 07/15/2011 03:06 AM, Osier Yang wrote:
>> * src/qemu/qemu_driver.c: New call back for qemu_driver,
>> New function qemudDomainUndefineFlags, and changes on
>> qemudDomainUndefine.
>> ---
>> src/qemu/qemu_driver.c | 35 ++++++++++++++++++++++++++++++++++-
>> 1 files changed, 34 insertions(+), 1 deletions(-)
>>
>> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
>> index 3d4207e..0bf135d 100644
>> --- a/src/qemu/qemu_driver.c
>> +++ b/src/qemu/qemu_driver.c
>> @@ -4303,12 +4303,18 @@ cleanup:
>> return dom;
>> }
>>
>> -static int qemudDomainUndefine(virDomainPtr dom) {
>> +static int
>> +qemudDomainUndefineFlags(virDomainPtr dom,
>> + unsigned int flags)
> As long as we're touching this, s/qemudDomain/qemuDomain/
>
>> + name = qemuDomainManagedSavePath(driver, vm);
>> + if (name == NULL)
>> + goto cleanup;
>> +
>> + if (virFileExists(name)) {
>> + if ((flags& VIR_DOMAIN_UNDEFINE_MANAGED_STATE)
>> +&& (unlink(name)< 0)) {
>> + qemuReportError(VIR_ERR_INTERNAL_ERROR,
>> + _("Failed on removing domain managed "
> Grammar.
>
>> + "state file '%s'"), name);
> No need to expose our internal file name details to the user.
>
>> + goto cleanup;
>> + } else {
>> + qemuReportError(VIR_ERR_INTERNAL_ERROR,
> Not an internal error.
>
>> + _("Refusing to undefine with managed state "
>> + "file '%s' exists"), name);
> Grammar.
>
>> + goto cleanup;
>> + }
> Logic bug. This fails with "Refusing to undefine" if the unlink()
> succeeds. Rather, you want:
I changed this before posting, but sent the old patch without the change
mistakenly. :(
> if (virFileExists(name)) {
> if (flags& VIR_DOMAIN_UNDEFINE_MANAGED_STATE) {
> if (unlink(name)< 0) {
> virReportSystemError(errno, "%s",
> _("Failed to remove managed state for domain"));
> goto cleanup;
> }
> } else {
> qemuReportError(VIR_ERR_OPERATION_INVALID, "%s",
> _("Refusing to undefine domain with managed state"));
> goto cleanup;
> }
> }
>
> Needs a v3.
>
More information about the libvir-list
mailing list