All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Cody <jcody@redhat.com>
To: Xu Wang <gesaint@linux.vnet.ibm.com>
Cc: kwolf@redhat.com, stefanha@gmail.com, famz@redhat.com,
	qemu-devel@nongnu.org, wdongxu@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH V9 2/4] block: Add check infinite loop in bdrv_img_create()
Date: Thu, 19 Dec 2013 11:27:18 -0500	[thread overview]
Message-ID: <20131219162718.GE4699@localhost.localdomain> (raw)
In-Reply-To: <1385447913-19004-3-git-send-email-gesaint@linux.vnet.ibm.com>

On Tue, Nov 26, 2013 at 01:38:31AM -0500, Xu Wang wrote:
> Backing file loop should be checked before qemu-img create command
> execution. If loop is found, qemu-img create should be stopped and
> an error printed.
> 
> Signed-off-by: Xu Wang <gesaint@linux.vnet.ibm.com>
> ---
>  block.c | 18 ++++++++++--------
>  1 file changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/block.c b/block.c
> index 7016ce8..b8cea1c 100644
> --- a/block.c
> +++ b/block.c
> @@ -4633,14 +4633,6 @@ void bdrv_img_create(const char *filename, const char *fmt,
>      }
>  
>      backing_file = get_option_parameter(param, BLOCK_OPT_BACKING_FILE);
> -    if (backing_file && backing_file->value.s) {
> -        if (!strcmp(filename, backing_file->value.s)) {
> -            error_setg(errp, "Error: Trying to create an image with the "
> -                             "same filename as the backing file");
> -            goto out;
> -        }
> -    }
> -
>      backing_fmt = get_option_parameter(param, BLOCK_OPT_BACKING_FMT);
>      if (backing_fmt && backing_fmt->value.s) {
>          backing_drv = bdrv_find_format(backing_fmt->value.s);
> @@ -4651,6 +4643,16 @@ void bdrv_img_create(const char *filename, const char *fmt,
>          }
>      }
>  
> +    if (backing_file && backing_file->value.s) {
> +        if (!bdrv_backing_chain_okay(backing_file->value.s,
> +                                     backing_drv, filename,
> +                                     &local_err)) {
> +            error_setg(errp, "Failed to create image: %s",
> +                       error_get_pretty(local_err));
> +            goto out;

This one is OK, because at out: there is an error_propagate(), which will
see that errp is already set, and just free local_err at that point.

> +        }
> +    }
> +
>      // The size for the image must always be specified, with one exception:
>      // If we are using a backing file, we can obtain the size from there
>      size = get_option_parameter(param, BLOCK_OPT_SIZE);
> -- 
> 1.8.1.4
> 
> 

  reply	other threads:[~2013-12-19 20:45 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-26  6:38 [Qemu-devel] [PATCH V9 0/4] Refine and export backing file loop check Xu Wang
2013-11-26  6:38 ` [Qemu-devel] [PATCH V9 1/4] block/qemu-img: Refine and export infinite loop checking in collect_image_info_list() Xu Wang
2013-12-19 15:23   ` Jeff Cody
2013-12-19 16:18   ` Jeff Cody
2013-11-26  6:38 ` [Qemu-devel] [PATCH V9 2/4] block: Add check infinite loop in bdrv_img_create() Xu Wang
2013-12-19 16:27   ` Jeff Cody [this message]
2013-11-26  6:38 ` [Qemu-devel] [PATCH V9 3/4] block: Add backing file loop check in change_backing_file() Xu Wang
2013-12-19 16:13   ` Jeff Cody
2013-11-26  6:38 ` [Qemu-devel] [PATCH V9 4/4] blockdev: Add infinite loop check in drive_init() Xu Wang
2013-12-19 17:25   ` Jeff Cody

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=20131219162718.GE4699@localhost.localdomain \
    --to=jcody@redhat.com \
    --cc=famz@redhat.com \
    --cc=gesaint@linux.vnet.ibm.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    --cc=wdongxu@linux.vnet.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.