From: Eric Blake <eblake@redhat.com>
To: 张敏 <rudyflyzhang@gmail.com>, qemu-devel@nongnu.org
Cc: famz@redhat.com, qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 1/2] hmp: add hmp command for incremental backup
Date: Fri, 22 Jan 2016 09:39:38 -0700 [thread overview]
Message-ID: <56A25B4A.90702@redhat.com> (raw)
In-Reply-To: <CAMuF_+Z_tep8K6hPKR6Sqc+W-DSLatf_gRvrEY_Y4gty7JpyTw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2228 bytes --]
On 01/21/2016 07:04 PM, 张敏 wrote:
>>> - .args_type = "reuse:-n,full:-f,device:B,target:s,format:s?",
>>> - .params = "[-n] [-f] device target [format]",
>>> + .args_type = "reuse:-n,full:-f,device:B,target:s,bitmap:s?,format:s?",
>>> + .params = "[-n] [-f] device target [bitmap] [format]",
>> This is HMP, so it may not matter, but this is not backwards compatible.
>> Scripts targetting the old style of passing a format will now have that
>> format string interpreted as a bitmap name with no format. Better would
>> be to stick [bitmap] at the end, not the middle.
>
> But I have a question: If I don't want to input a 'format', only use 'bitmap',
> it will let 'bitmap' as 'format', This problem how to do it.
Several solutions, some nicer than others, some more complicated than
others. I don't have any strong preference, so much as pointing out the
design space:
1. You don't. If you want to use 'bitmap', you MUST supply 'format'
(supplying format is good anyways, as implicit formats have led to CVEs
in the past).
1.a. Possible variation: Teach the command to allow empty '' format to
be a synonym for an implicit format, so that it could look like:
drive_backup device target '' /path/to/bitmap
2. You modify the HMP parser to accept optionally-named arguments, so
that you can then supply later optional arguments by name without having
to provide the earlier optional arguments. Maybe looking something like:
drive_backup device target --bitmap=/path/to/bitmap
3. Instead of trying to overload an existing command, you create a new
command. Particularly since your overload already declared that '-f'
and 'bitmap' are incompatible.
4. maybe something else?
>> Needs {}. Run your patch through scripts/checkpatch.pl, to flag this
>> and other style violations.
>
> I have checked these patches,but I ignored these warnings.
Not a good idea. And even in the rare case that you plan on ignoring
the warnings, you should at least document in the commit message your
justification for doing so.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
next prev parent reply other threads:[~2016-01-22 16:39 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-21 11:22 [Qemu-devel] [PATCH 0/2] block/hmp: add sereval hmp commands for incremental backup Rudy Zhang
2016-01-21 11:22 ` [Qemu-devel] [PATCH 1/2] hmp: add hmp command " Rudy Zhang
2016-01-21 16:39 ` Eric Blake
2016-01-21 20:47 ` [Qemu-devel] [Qemu-block] " John Snow
2016-01-22 2:04 ` [Qemu-devel] " 张敏
2016-01-22 16:39 ` Eric Blake [this message]
2016-01-21 11:22 ` [Qemu-devel] [PATCH 2/2] hmp: add hmp commands dirty bitmap add/clear/remove' Rudy Zhang
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=56A25B4A.90702@redhat.com \
--to=eblake@redhat.com \
--cc=famz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=rudyflyzhang@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.