qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 2/1] qemu-img: Add "backing":true to unallocated map segme


From: Kevin Wolf
Subject: Re: [PATCH v2 2/1] qemu-img: Add "backing":true to unallocated map segments
Date: Wed, 23 Jun 2021 10:57:54 +0200

Am 22.06.2021 um 18:56 hat Nir Soffer geschrieben:
> On Tue, Jun 22, 2021 at 6:38 PM Kevin Wolf <kwolf@redhat.com> wrote:
> >
> > Am 11.06.2021 um 21:03 hat Eric Blake geschrieben:
> > > To save the user from having to check 'qemu-img info --backing-chain'
> > > or other followup command to determine which "depth":n goes beyond the
> > > chain, add a boolean field "backing" that is set only for unallocated
> > > portions of the disk.
> > >
> > > Signed-off-by: Eric Blake <eblake@redhat.com>
> > > ---
> > >
> > > Touches the same iotest output as 1/1.  If we decide that switching to
> > > "depth":n+1 is too risky, and that the mere addition of "backing":true
> > > while keeping "depth":n is good enough, then we'd have just one patch,
> > > instead of this double churn.  Preferences?
> >
> > I think the additional flag is better because it's guaranteed to be
> > backwards compatible, and because you don't need to know the number of
> > layers to infer whether a cluster was allocated in the whole backing
> > chain. And by exposing ALLOCATED we definitely give access to the whole
> > information that exists in QEMU.
> >
> > However, to continue with the bike shedding: I won't insist on
> > "allocated" even if that is what the flag is called internally and
> > consistency is usually helpful, but "backing" is misleading, too,
> > because intuitively it doesn't cover the top layer or standalone images
> > without a backing file. How about something like "present"?
> 
> Looks hard to document:
> 
> # @present: if present and false, the range is not allocated within the
> #           backing chain (since 6.1)

I'm not sure why you would document it with a double negative.

> And is not consistent with "offset". It would work better as:
> 
> # @present: if present, the range is allocated within the backing
> #           chain (since 6.1)

Completely ignoring the value? I would have documented it like this, but
with "if true..." instead of "if present...".

> Or:
> 
> # @absent: if present, the range is not allocated within the backing
> #           chain (since 6.1)

This is possible, too, but generally positive flags are preferable to
negative ones, and the internal one is already positive.

> This is used by libnbd now:
> https://github.com/libguestfs/libnbd/commit/1d01d2ac4f6443b160b7d81119d555e1aaedb56d
> 
> But I'm fine with "backing", It is consistent with BLK_BACKING_FILE,
> meaning this area exposes data from a backing file (if one exists).
> 
> We use "backing" internally to be consistent with future qemu-img.

I just realised that I actually misunderstood "backing" to mean the
opposite of what it is in this patch!

It really means "the data comes from some imaginary additional backing
file that doesn't exist in the backing chain", while I understood it as
"something in the (real) backing chain contains the data".

"present" or "absent" should be much less prone to such
misunderstandings.

Kevin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]