[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH 18/22] savevm: Convert do_delvm() to QObject, QE
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] Re: [PATCH 18/22] savevm: Convert do_delvm() to QObject, QError |
Date: |
Thu, 22 Apr 2010 16:31:35 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100330 Fedora/3.0.4-1.fc12 Thunderbird/3.0.4 |
Am 22.04.2010 15:48, schrieb Luiz Capitulino:
> On Wed, 21 Apr 2010 16:18:18 +0200
> Kevin Wolf <address@hidden> wrote:
>
>> Am 20.04.2010 23:09, schrieb Luiz Capitulino:
>>> Signed-off-by: Luiz Capitulino <address@hidden>
>>> ---
>>> qemu-monitor.hx | 3 ++-
>>> savevm.c | 14 ++++++++++----
>>> sysemu.h | 2 +-
>>> 3 files changed, 13 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/qemu-monitor.hx b/qemu-monitor.hx
>>> index 5ea5748..71cb1a2 100644
>>> --- a/qemu-monitor.hx
>>> +++ b/qemu-monitor.hx
>>> @@ -274,7 +274,8 @@ ETEXI
>>> .args_type = "name:s",
>>> .params = "tag|id",
>>> .help = "delete a VM snapshot from its tag or id",
>>> - .mhandler.cmd = do_delvm,
>>> + .user_print = monitor_user_noop,
>>> + .mhandler.cmd_new = do_delvm,
>>> },
>>>
>>> STEXI
>>> diff --git a/savevm.c b/savevm.c
>>> index 643273e..031eeff 100644
>>> --- a/savevm.c
>>> +++ b/savevm.c
>>> @@ -1815,24 +1815,30 @@ int load_vmstate(const char *name)
>>> return 0;
>>> }
>>>
>>> -void do_delvm(Monitor *mon, const QDict *qdict)
>>> +int do_delvm(Monitor *mon, const QDict *qdict, QObject **ret_data)
>>> {
>>> + int ret;
>>> DriveInfo *dinfo;
>>> BlockDriverState *bs, *bs1;
>>> const char *name = qdict_get_str(qdict, "name");
>>>
>>> bs = get_bs_snapshots();
>>> if (!bs) {
>>> - monitor_printf(mon, "No block device supports snapshots\n");
>>> - return;
>>> + qerror_report(QERR_SNAPSHOT_NO_DEVICE);
>>> + return -1;
>>> }
>>>
>>> + ret = -1;
>>> +
>>> QTAILQ_FOREACH(dinfo, &drives, next) {
>>> bs1 = dinfo->bdrv;
>>> if (bdrv_has_snapshot(bs1)) {
>>> - delete_snapshot(bs1, name);
>>> + /* FIXME: will report multiple failures in QMP */
>>> + ret = delete_snapshot(bs1, name);
>>> }
>>> }
>>> +
>>> + return (ret < 0 ? -1 : 0);
>>
>> Doesn't this return success when the first drive fails and the second
>> one succeeds?
>
> Yes, but what's the real status when this happens? Did delvm
> succeed or not?
>
> I think users will ask the same as we'll print error messages.
Don't know. We probably need ternary logic. :-)
I think I'd call it an error. But either way, that it depends on the
order of disks just doesn't feel right. The status of "disk1 fails and
disk2 succeeds" should not be different from "disk1 succeeds and disk2
fails".
> Another question is: is it acceptable to return on the first
> error?
I guess it is.
Kevin
- [Qemu-devel] [PATCH 10/22] QError: New QERR_SNAPSHOT_CREATE_FAILED, (continued)
- [Qemu-devel] [PATCH 10/22] QError: New QERR_SNAPSHOT_CREATE_FAILED, Luiz Capitulino, 2010/04/20
- [Qemu-devel] [PATCH 08/22] QError: New QERR_SNAPSHOT_NO_DEVICE, Luiz Capitulino, 2010/04/20
- [Qemu-devel] [PATCH 11/22] QError: New QERR_SNAPSHOT_ACTIVATE_FAILED, Luiz Capitulino, 2010/04/20
- [Qemu-devel] [PATCH 15/22] QError: New QERR_SNAPSHOT_NOT_FOUND, Luiz Capitulino, 2010/04/20
- [Qemu-devel] [PATCH 14/22] QError: New QERR_DEVICE_NO_SNAPSHOT, Luiz Capitulino, 2010/04/20
- [Qemu-devel] [PATCH 13/22] QError: New QERR_STATEVM_LOAD_FAILED, Luiz Capitulino, 2010/04/20
- [Qemu-devel] [PATCH 17/22] savevm: delete_snapshot(): Remove unused parameter, Luiz Capitulino, 2010/04/20
- [Qemu-devel] [PATCH 18/22] savevm: Convert do_delvm() to QObject, QError, Luiz Capitulino, 2010/04/20
- [Qemu-devel] [PATCH 19/22] savevm: Convert do_savevm() to QError, Luiz Capitulino, 2010/04/20
- [Qemu-devel] [PATCH 16/22] savevm: Convert delete_snapshot() to QError, Luiz Capitulino, 2010/04/20
- [Qemu-devel] [PATCH 20/22] savevm: Convert do_savevm() to QObject, Luiz Capitulino, 2010/04/20
- [Qemu-devel] [PATCH 21/22] savevm: Convert do_loadvm() to QError, Luiz Capitulino, 2010/04/20
- [Qemu-devel] [PATCH 22/22] savevm: Convert do_loadvm() to QObject, Luiz Capitulino, 2010/04/20
- [Qemu-devel] Re: [RFC 00/22]: QMP: Convert savevm/loadvm/delvm, Juan Quintela, 2010/04/20