qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Brad Campbell <brad@fnarfbargle.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Make qemu-img convert properly consider backing file contents when used with -o backing_file
Date: Fri, 29 Apr 2011 12:18:57 +0200	[thread overview]
Message-ID: <4DBA9091.7090202@redhat.com> (raw)
In-Reply-To: <4DBA1782.7050600@fnarfbargle.com>

Am 29.04.2011 03:42, schrieb Brad Campbell:
> G'day all,
> 
> This patch makes qemu-img properly consider the contents of the output 
> backing file when performing a convert operation. All things considered 
> it would also perform similar to rebase, where you could specify a 
> completely different backing file and it would just de-dup.
> 
> I've poked this in as an attachment as apparently my last attempt at an 
> in-line patch munged the formatting.
> 
> Comments, pokes or flames welcome.

Please include a commit comment and a Signed-off-by line. Instead of
sending a plain diff, you'll get a better result if you have a git
commit locally and use git format-patch to create the patch file.

Also please make sure to avoid trailing whitespace.

> > @@ -719,6 +720,16 @@ static int img_convert(int argc, char **argv)
>      out_baseimg_param = get_option_parameter(param, BLOCK_OPT_BACKING_FILE);
>      if (out_baseimg_param) {
>          out_baseimg = out_baseimg_param->value.s;
> +
> +        /* out_baseimg_parm != NULL even if there is no base img specified! */
> +        if (out_baseimg) {
> +            out_bf = bdrv_new_open(out_baseimg, NULL, BDRV_O_FLAGS);
> +            if (!out_bf) {
> +                error_report("Could not open backing file '%s'", out_baseimg);
> +                ret = -1;
> +                goto out;
> 

bdrv_new_open already prints an error message in case of failure, so we
shouldn't duplicate it here.

> @@ -889,8 +903,15 @@ static int img_convert(int argc, char **argv)
>                     are present in both the output's and input's base images (no
>                     need to copy them). */
>                  if (out_baseimg) {
> -                    if (!bdrv_is_allocated(bs[bs_i], sector_num - bs_offset,
> -                                           n, &n1)) {
> +                    if (bdrv_read(bs[bs_i], sector_num - bs_offset, buf, n) < 0) {
> +                        error_report("error while reading input file");
> +                        goto out;
> +                    }
> +                    if (bdrv_read(out_bf, sector_num - bs_offset, buf3, n) < 0) {
> +                        error_report("error while reading backing file");
> +                        goto out;
> +                    }

Did you test what happens with a backing file that is smaller than the
overlay? I suspect it will fail here after this change.

Also I think you need to set ret = -1 before jumping to out:

Kevin

      reply	other threads:[~2011-04-29 10:16 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-29  1:42 [Qemu-devel] [PATCH] Make qemu-img convert properly consider backing file contents when used with -o backing_file Brad Campbell
2011-04-29 10:18 ` Kevin Wolf [this message]

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=4DBA9091.7090202@redhat.com \
    --to=kwolf@redhat.com \
    --cc=brad@fnarfbargle.com \
    --cc=qemu-devel@nongnu.org \
    /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).