[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 03/11] block: Add overlay BDS pointer into th
From: |
Jeff Cody |
Subject: |
Re: [Qemu-devel] [PATCH v2 03/11] block: Add overlay BDS pointer into the BlockDriverState struct |
Date: |
Thu, 29 May 2014 17:36:51 -0400 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, May 27, 2014 at 09:57:19AM -0600, Eric Blake wrote:
> On 05/27/2014 08:28 AM, Jeff Cody wrote:
> > Now that node-names can reference an individual BlockDriverState without
> > needing to navigate downwards from the 'device' level, in order to find
> > the top-most image (active layer) we need a pointer to the overlay of a
> > BDS.
> >
> > This will allow QMP commands to reference an image solely by its
> > node-name, without also needing to pass in the corresponding 'device'
> > string.
> >
> > Signed-off-by: Jeff Cody <address@hidden>
> > ---
> > block.c | 5 +++++
> > include/block/block_int.h | 1 +
> > 2 files changed, 6 insertions(+)
> >
>
> Deceptively simple - good thing we already refactored all chain
> manipulations to go through bdrv_set_backing_hd().
>
Alas, it was too deceptive... it breaks in the bdrv_append() case. An
example:
Existing chain:
[0 'base'] <--- [1 'sn1'] <--- [2 'sn2']
Perform a snapshot:
[0 'base'] <--- [1 'sn1'] <--- [3 'sn2'] <---- [2 'sn3']
^^^^^^^^^
(new BDS)
[1] will have an overlay pointing to [2] still, skipping the newly
injected BDS.
When we perform bdrv_append(), we also need to update the overlay of
the active layer's backing_hd BDS. Fortunately, this is just one
additional line (although I am also adding a helper, since we just got
rid of open coding bs->backing_hd, we should probably avoid doing the
same thing with bs->overlay)
- [Qemu-devel] [PATCH v2 00/11] Modify block jobs to use node-names, Jeff Cody, 2014/05/27
- [Qemu-devel] [PATCH v2 01/11] block: Auto-generate node_names for each BDS entry, Jeff Cody, 2014/05/27
- [Qemu-devel] [PATCH v2 02/11] block: add helper function to determine if a BDS is in a chain, Jeff Cody, 2014/05/27
- [Qemu-devel] [PATCH v2 03/11] block: Add overlay BDS pointer into the BlockDriverState struct, Jeff Cody, 2014/05/27
- [Qemu-devel] [PATCH v2 04/11] block: add helper function to find the active layer of any BDS, Jeff Cody, 2014/05/27
- [Qemu-devel] [PATCH v2 05/11] block: simplify bdrv_find_base(), Jeff Cody, 2014/05/27
- [Qemu-devel] [PATCH v2 06/11] block: make 'top' argument to block-commit optional, Jeff Cody, 2014/05/27
- [Qemu-devel] [PATCH v2 08/11] block: extend block-commit to accept a string for the backing file, Jeff Cody, 2014/05/27
- [Qemu-devel] [PATCH v2 07/11] block: Accept node-name arguments for block-commit, Jeff Cody, 2014/05/27