[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/2] block: in commit, determine base image from
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH 2/2] block: in commit, determine base image from the top image |
Date: |
Wed, 10 Oct 2012 12:18:03 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120911 Thunderbird/15.0.1 |
On 10/09/2012 11:56 PM, Jeff Cody wrote:
> This simplifies some code and error checking, and also fixes a bug.
>
> bdrv_find_backing_image() should only be passed absolute filenames,
> or filenames relative to the chain. In the QMP message handler for
> block commit, when looking up the base do so from the determined top
> image, so we know it is reachable from top.
>
> Signed-off-by: Jeff Cody <address@hidden>
> ---
> block/commit.c | 9 ---------
> blockdev.c | 21 +++++++++++----------
> 2 files changed, 11 insertions(+), 19 deletions(-)
>
> @@ -1182,6 +1172,17 @@ void qmp_block_commit(const char *device,
> return;
> }
>
> + if (base && has_base) {
> + base_bs = bdrv_find_backing_image(top_bs, base);
In particular, if I have the chain:
/dir1/base <- /dir1/snap1(base) <- /dir2/base(/dir1/snap1) <-
/dir2/snap2(base)
and request a commit of "top":"/dir1/snap1", "base":"base", then this
new code will now look up base relative to /dir1/snap1 and find
/dir1/base and proceed with the commit; whereas the old code would look
up base relative to /dir2/snap2 and find /dir2/base and complain that
the arguments were swapped.
I can live with those semantics.
Reviewed-by: Eric Blake <address@hidden>
--
Eric Blake address@hidden +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
[Qemu-devel] [PATCH 2/2] block: in commit, determine base image from the top image, Jeff Cody, 2012/10/10