From: Eric Blake <eblake@redhat.com>
To: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
David Edmondson <david.edmondson@oracle.com>,
qemu-devel@nongnu.org
Cc: qemu-block@nongnu.org
Subject: Re: [PATCH v3 1/1] qemu-img: Add --target-is-zero to convert
Date: Tue, 4 Feb 2020 08:23:59 -0600 [thread overview]
Message-ID: <92ca6082-a3a6-c116-d1cc-e9810280c0c6@redhat.com> (raw)
In-Reply-To: <91c3d45b-4c27-d366-6dd9-5c27164cce35@virtuozzo.com>
On 2/4/20 7:59 AM, Vladimir Sementsov-Ogievskiy wrote:
>> I understand that it is safer to have restrictions now and lift them
>> later, than to allow use of the option at any time and leave room for
>> the user to shoot themselves in the foot with no way to add safety
>> later. The argument against no backing file is somewhat
>> understandable (technically, as long as the backing file also reads as
>> all zeroes, then the overall image reads as all zeroes - but why have
>> a backing file that has no content?); the argument requiring -n is a
>> bit weaker (if I'm creating an image, I _know_ it reads as all zeroes,
>> so the --target-is-zero argument is redundant, but it shouldn't hurt
>> to allow it).
>
> I know that it reads as all zeroes, only if this format provides zero
> initialization..
>
>>
>>> +++ b/qemu-img.c
>>
>>> @@ -2247,6 +2256,11 @@ static int img_convert(int argc, char **argv)
>>> warn_report("This will become an error in future QEMU
>>> versions.");
>>> }
>>> + if (s.has_zero_init && !skip_create) {
>>> + error_report("--target-is-zero requires use of -n flag");
>>> + goto fail_getopt;
>>> + }
>>
>> So I think we could drop this hunk with no change in behavior.
>
> I think, no we can't. If we allow target-is-zero, with -n, we'd better
> to check that what we are creating is zero-initialized (format has
> zero-init), and if not we should report error.
>
Good call. Yes, if we allow --target-is-zero without -n, we MUST insist
that bdrv_has_zero_init() returns 1 (or, after my followup series,
bdrv_known_zeroes() includes BDRV_ZERO_CREATE). I can work that into v2
of my series, if desired.
>>
>>> +
>>> s.src_num = argc - optind - 1;
>>> out_filename = s.src_num >= 1 ? argv[argc - 1] : NULL;
>>> @@ -2380,6 +2394,11 @@ static int img_convert(int argc, char **argv)
>>> }
>>> s.target_has_backing = (bool) out_baseimg;
>>> + if (s.has_zero_init && s.target_has_backing) {
>>> + error_report("Cannot use --target-is-zero with a backing
>>> file");
>>> + goto out;
>>> + }
>>> +
>>
>> while keeping this one makes sense. At any rate, typo fixes are
>> minor, and whether or not we drop the hunk I claim is a needless
>> restriction against redundancy,
>>
>> Reviewed-by: Eric Blake <eblake@redhat.com>
>>
>
>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
next prev parent reply other threads:[~2020-02-04 14:25 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-04 9:52 [PATCH v3 0/1] qemu-img: Add --target-is-zero to indicate that a target is blank David Edmondson
2020-02-04 9:52 ` [PATCH v3 1/1] qemu-img: Add --target-is-zero to convert David Edmondson
2020-02-04 13:31 ` Eric Blake
2020-02-04 13:59 ` Vladimir Sementsov-Ogievskiy
2020-02-04 14:23 ` Eric Blake [this message]
2020-02-07 10:33 ` Max Reitz
2020-02-07 12:07 ` Vladimir Sementsov-Ogievskiy
2020-02-07 14:41 ` Max Reitz
2020-02-07 14:53 ` Vladimir Sementsov-Ogievskiy
2020-02-07 15:03 ` Max Reitz
2020-02-07 15:16 ` Vladimir Sementsov-Ogievskiy
2020-02-07 15:28 ` Max Reitz
2020-02-07 14:57 ` Eric Blake
2020-02-07 15:12 ` Max Reitz
2020-02-07 15:26 ` Vladimir Sementsov-Ogievskiy
2020-02-04 14:21 ` David Edmondson
2020-02-06 1:52 ` Eric Blake
2020-02-04 13:59 ` Vladimir Sementsov-Ogievskiy
2020-02-04 14:21 ` David Edmondson
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=92ca6082-a3a6-c116-d1cc-e9810280c0c6@redhat.com \
--to=eblake@redhat.com \
--cc=david.edmondson@oracle.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=vsementsov@virtuozzo.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).