From: Sheng Yang <sheng@linux.intel.com>
To: qemu-devel@nongnu.org
Cc: Naphtali Sprei <nsprei@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v2 resend 2/4] qemu-img: Fix qemu-img can't create qcow image based on read-only image
Date: Fri, 5 Feb 2010 10:45:19 +0800 [thread overview]
Message-ID: <201002051045.19618.sheng@linux.intel.com> (raw)
In-Reply-To: <1265321069-4105-3-git-send-email-nsprei@redhat.com>
On Friday 05 February 2010 06:04:27 Naphtali Sprei wrote:
> Open image file read-only where possible
> Patch originally written by Sheng Yang <sheng@linux.intel.com>
>
Signed-off-by: Sheng Yang <sheng@linux.intel.com>
> Signed-off-by: Naphtali Sprei <nsprei@redhat.com>
--
regards
Yang, Sheng
> ---
> qemu-img.c | 15 ++++++++++-----
> 1 files changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/qemu-img.c b/qemu-img.c
> index cbba4fc..b0ac9eb 100644
> --- a/qemu-img.c
> +++ b/qemu-img.c
> @@ -188,11 +188,13 @@ static int read_password(char *buf, int buf_size)
> #endif
>
> static BlockDriverState *bdrv_new_open(const char *filename,
> - const char *fmt)
> + const char *fmt,
> + int readonly)
> {
> BlockDriverState *bs;
> BlockDriver *drv;
> char password[256];
> + int flags = BRDV_O_FLAGS;
>
> bs = bdrv_new("");
> if (!bs)
> @@ -204,7 +206,10 @@ static BlockDriverState *bdrv_new_open(const char
> *filename, } else {
> drv = NULL;
> }
> - if (bdrv_open2(bs, filename, BRDV_O_FLAGS | BDRV_O_RDWR, drv) < 0) {
> + if (!readonly) {
> + flags |= BDRV_O_RDWR;
> + }
> + if (bdrv_open2(bs, filename, flags, drv) < 0) {
> error("Could not open '%s'", filename);
> }
> if (bdrv_is_encrypted(bs)) {
> @@ -343,7 +348,7 @@ static int img_create(int argc, char **argv)
> }
> }
>
> - bs = bdrv_new_open(backing_file->value.s, fmt);
> + bs = bdrv_new_open(backing_file->value.s, fmt, 1);
> bdrv_get_geometry(bs, &size);
> size *= 512;
> bdrv_delete(bs);
> @@ -627,7 +632,7 @@ static int img_convert(int argc, char **argv)
>
> total_sectors = 0;
> for (bs_i = 0; bs_i < bs_n; bs_i++) {
> - bs[bs_i] = bdrv_new_open(argv[optind + bs_i], fmt);
> + bs[bs_i] = bdrv_new_open(argv[optind + bs_i], fmt, 1);
> if (!bs[bs_i])
> error("Could not open '%s'", argv[optind + bs_i]);
> bdrv_get_geometry(bs[bs_i], &bs_sectors);
> @@ -685,7 +690,7 @@ static int img_convert(int argc, char **argv)
> }
> }
>
> - out_bs = bdrv_new_open(out_filename, out_fmt);
> + out_bs = bdrv_new_open(out_filename, out_fmt, 0);
>
> bs_i = 0;
> bs_offset = 0;
>
next prev parent reply other threads:[~2010-02-05 2:46 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-04 22:04 [Qemu-devel] [PATCH v2 resend 0/4] block: more read-only changes, related to backing files Naphtali Sprei
2010-02-04 22:04 ` [Qemu-devel] [PATCH v2 resend 1/4] Add open_flags to BlockDriverState Will be used later Naphtali Sprei
2010-02-04 22:04 ` [Qemu-devel] [PATCH v2 resend 2/4] qemu-img: Fix qemu-img can't create qcow image based on read-only image Naphtali Sprei
2010-02-04 22:04 ` [Qemu-devel] [PATCH v2 resend 3/4] Block: readonly changes Naphtali Sprei
2010-02-04 22:04 ` [Qemu-devel] [PATCH v2 resend 4/4] Open backing file read-only also for snapshot mode Naphtali Sprei
2010-02-05 8:20 ` [Qemu-devel] [PATCH v2 resend 3/4] Block: readonly changes Kevin Wolf
2010-02-05 2:45 ` Sheng Yang [this message]
2010-02-05 2:46 ` [Qemu-devel] [PATCH v2 resend 0/4] block: more read-only changes, related to backing files Sheng Yang
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=201002051045.19618.sheng@linux.intel.com \
--to=sheng@linux.intel.com \
--cc=nsprei@redhat.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 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.