* [Qemu-devel] [PATCH v2 0/4] block: more read-only changes, related to backing files
@ 2010-02-04 13:43 Naphtali Sprei
2010-02-04 13:43 ` [Qemu-devel] [PATCH v2 1/4] Add open_flags to BlockDriverState Will be used later Naphtali Sprei
2010-02-04 14:08 ` [Qemu-devel] Re: [PATCH v2 0/4] block: more read-only changes, related to backing files Naphtali Sprei
0 siblings, 2 replies; 4+ messages in thread
From: Naphtali Sprei @ 2010-02-04 13:43 UTC (permalink / raw)
To: qemu-devel; +Cc: Naphtali Sprei
This is version 2. The change between previous patch (only 3/4) is the order of closing/re-opening the image.
The read-only changes broke qemu-img create with read-only base image
These changes fix it.
It also make things a little safer, opening the backing file for read-only,
upgrading to read-write only for commit, and back to read-only when done.
Naphtali Sprei (4):
Add open_flags to BlockDriverState Will be used later
qemu-img: Fix qemu-img can't create qcow image based on read-only
image
Block: readonly changes
Open backing file read-only also for snapshot mode
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH v2 1/4] Add open_flags to BlockDriverState Will be used later
2010-02-04 13:43 [Qemu-devel] [PATCH v2 0/4] block: more read-only changes, related to backing files Naphtali Sprei
@ 2010-02-04 13:43 ` Naphtali Sprei
2010-02-04 13:43 ` [Qemu-devel] [PATCH v2 2/4] qemu-img: Fix qemu-img can't create qcow image based on read-only image Naphtali Sprei
2010-02-04 14:08 ` [Qemu-devel] Re: [PATCH v2 0/4] block: more read-only changes, related to backing files Naphtali Sprei
1 sibling, 1 reply; 4+ messages in thread
From: Naphtali Sprei @ 2010-02-04 13:43 UTC (permalink / raw)
To: qemu-devel; +Cc: Naphtali Sprei
Signed-off-by: Naphtali Sprei <nsprei@redhat.com>
---
block.c | 1 +
block_int.h | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/block.c b/block.c
index 1919d19..66564de 100644
--- a/block.c
+++ b/block.c
@@ -363,6 +363,7 @@ int bdrv_open2(BlockDriverState *bs, const char *filename, int flags,
bs->is_temporary = 0;
bs->encrypted = 0;
bs->valid_key = 0;
+ bs->open_flags = flags;
/* buffer_alignment defaulted to 512, drivers can change this value */
bs->buffer_alignment = 512;
diff --git a/block_int.h b/block_int.h
index a0ebd90..9144d37 100644
--- a/block_int.h
+++ b/block_int.h
@@ -130,6 +130,7 @@ struct BlockDriverState {
int64_t total_sectors; /* if we are reading a disk image, give its
size in sectors */
int read_only; /* if true, the media is read only */
+ int open_flags; /* flags used to open the file */
int removable; /* if true, the media can be removed */
int locked; /* if true, the media cannot temporarily be ejected */
int encrypted; /* if true, the media is encrypted */
--
1.6.3.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH v2 2/4] qemu-img: Fix qemu-img can't create qcow image based on read-only image
2010-02-04 13:43 ` [Qemu-devel] [PATCH v2 1/4] Add open_flags to BlockDriverState Will be used later Naphtali Sprei
@ 2010-02-04 13:43 ` Naphtali Sprei
0 siblings, 0 replies; 4+ messages in thread
From: Naphtali Sprei @ 2010-02-04 13:43 UTC (permalink / raw)
To: qemu-devel; +Cc: Naphtali Sprei
Open image file read-only where possible
Patch originally written by Sheng Yang <sheng@linux.intel.com>
Signed-off-by: Naphtali Sprei <nsprei@redhat.com>
---
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;
--
1.6.3.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] Re: [PATCH v2 0/4] block: more read-only changes, related to backing files
2010-02-04 13:43 [Qemu-devel] [PATCH v2 0/4] block: more read-only changes, related to backing files Naphtali Sprei
2010-02-04 13:43 ` [Qemu-devel] [PATCH v2 1/4] Add open_flags to BlockDriverState Will be used later Naphtali Sprei
@ 2010-02-04 14:08 ` Naphtali Sprei
1 sibling, 0 replies; 4+ messages in thread
From: Naphtali Sprei @ 2010-02-04 14:08 UTC (permalink / raw)
To: qemu-devel
Naphtali Sprei wrote:
> This is version 2. The change between previous patch (only 3/4) is the order of closing/re-opening the image.
Sorry,
patch sent without the change of version 2 (in 3/4).
Will send later.
Naphtali
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-02-04 14:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-04 13:43 [Qemu-devel] [PATCH v2 0/4] block: more read-only changes, related to backing files Naphtali Sprei
2010-02-04 13:43 ` [Qemu-devel] [PATCH v2 1/4] Add open_flags to BlockDriverState Will be used later Naphtali Sprei
2010-02-04 13:43 ` [Qemu-devel] [PATCH v2 2/4] qemu-img: Fix qemu-img can't create qcow image based on read-only image Naphtali Sprei
2010-02-04 14:08 ` [Qemu-devel] Re: [PATCH v2 0/4] block: more read-only changes, related to backing files Naphtali Sprei
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.