From: Kevin Wolf <kwolf@redhat.com>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: quintela@redhat.com, qemu-devel@nongnu.org, armbru@redhat.com
Subject: [Qemu-devel] Re: [PATCH 18/22] savevm: Convert do_delvm() to QObject, QError
Date: Thu, 22 Apr 2010 16:31:35 +0200 [thread overview]
Message-ID: <4BD05DC7.7070108@redhat.com> (raw)
In-Reply-To: <20100422104814.002539bc@redhat.com>
Am 22.04.2010 15:48, schrieb Luiz Capitulino:
> On Wed, 21 Apr 2010 16:18:18 +0200
> Kevin Wolf <kwolf@redhat.com> wrote:
>
>> Am 20.04.2010 23:09, schrieb Luiz Capitulino:
>>> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
>>> ---
>>> 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
next prev parent reply other threads:[~2010-04-22 14:32 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-20 21:09 [Qemu-devel] [RFC 00/22]: QMP: Convert savevm/loadvm/delvm Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 01/22] QMP: Introduce RESUME event Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 02/22] savevm: Don't check the return of qemu_fopen_bdrv() Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 03/22] savevm: Introduce delete_snapshot() and use it Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 04/22] savevm: do_loadvm(): Always resume the VM Luiz Capitulino
2010-04-20 21:28 ` [Qemu-devel] " Juan Quintela
2010-04-20 21:59 ` Luiz Capitulino
2010-04-21 8:36 ` Juan Quintela
2010-04-21 14:54 ` Luiz Capitulino
2010-04-21 15:39 ` Juan Quintela
2010-04-21 15:42 ` Kevin Wolf
2010-04-22 13:33 ` Luiz Capitulino
2010-04-21 13:28 ` Kevin Wolf
2010-04-21 15:08 ` Luiz Capitulino
2010-04-21 15:27 ` Kevin Wolf
2010-04-21 15:47 ` Juan Quintela
2010-04-21 15:45 ` Juan Quintela
2010-04-21 17:50 ` Jamie Lokier
2010-04-20 21:09 ` [Qemu-devel] [PATCH 05/22] savevm: load_vmstate(): Return 'ret' on error Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 06/22] savevm: load_vmstate(): Improve error check Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 07/22] qemu-error: Introduce get_errno_string() Luiz Capitulino
2010-04-21 8:28 ` Daniel P. Berrange
2010-04-21 13:38 ` Kevin Wolf
2010-04-21 14:42 ` malc
2010-04-21 15:12 ` Luiz Capitulino
2010-04-21 15:15 ` Daniel P. Berrange
2010-04-21 15:29 ` Luiz Capitulino
2010-04-21 17:13 ` Markus Armbruster
2010-04-22 13:44 ` Luiz Capitulino
2010-05-03 18:00 ` Anthony Liguori
2010-05-10 17:50 ` Markus Armbruster
2010-05-11 22:36 ` Jamie Lokier
2010-04-20 21:09 ` [Qemu-devel] [PATCH 08/22] QError: New QERR_SNAPSHOT_NO_DEVICE Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 09/22] QError: New QERR_SNAPSHOT_DELETE_FAILED Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 10/22] QError: New QERR_SNAPSHOT_CREATE_FAILED Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 11/22] QError: New QERR_SNAPSHOT_ACTIVATE_FAILED Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 12/22] QError: New QERR_STATEVM_SAVE_FAILED Luiz Capitulino
2010-04-20 21:31 ` [Qemu-devel] " Juan Quintela
2010-04-20 22:02 ` Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 13/22] QError: New QERR_STATEVM_LOAD_FAILED Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 14/22] QError: New QERR_DEVICE_NO_SNAPSHOT Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 15/22] QError: New QERR_SNAPSHOT_NOT_FOUND Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 16/22] savevm: Convert delete_snapshot() to QError Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 17/22] savevm: delete_snapshot(): Remove unused parameter Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 18/22] savevm: Convert do_delvm() to QObject, QError Luiz Capitulino
2010-04-21 14:18 ` [Qemu-devel] " Kevin Wolf
2010-04-22 13:48 ` Luiz Capitulino
2010-04-22 14:31 ` Kevin Wolf [this message]
2010-04-20 21:09 ` [Qemu-devel] [PATCH 19/22] savevm: Convert do_savevm() to QError Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 20/22] savevm: Convert do_savevm() to QObject Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 21/22] savevm: Convert do_loadvm() to QError Luiz Capitulino
2010-04-20 21:09 ` [Qemu-devel] [PATCH 22/22] savevm: Convert do_loadvm() to QObject Luiz Capitulino
2010-04-20 21:41 ` [Qemu-devel] Re: [RFC 00/22]: QMP: Convert savevm/loadvm/delvm Juan Quintela
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BD05DC7.7070108@redhat.com \
--to=kwolf@redhat.com \
--cc=armbru@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).