qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/3] Even more read-write/read-only fixes and cleanup
@ 2010-01-21 12:40 Naphtali Sprei
  2010-01-21 12:40 ` [Qemu-devel] [PATCH 0/3] *** SUBJECT HERE *** Naphtali Sprei
  0 siblings, 1 reply; 9+ messages in thread
From: Naphtali Sprei @ 2010-01-21 12:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Naphtali Sprei

A comment from Christoph Hellwig made me check (and fix) some stuff.
I'm afraid there are some more callers that needs to explicitly ask for read-write permissions.
I'd like to get comments about that.

P.S. The qcow2 bug (I introduced) in pre-allocate showed me there's a need to check return value.

Naphtali Sprei (3):
  No need anymore for bdrv_set_read_only
  Ask for read-write permissions when opening files where needed
  Read-only device changed to opens it's file for read-only.

 block.c           |    7 -------
 block.h           |    1 -
 block/bochs.c     |    6 ++----
 block/parallels.c |    6 ++----
 block/qcow2.c     |    2 +-
 block/vvfat.c     |    2 +-
 qemu-img.c        |    4 ++--
 7 files changed, 8 insertions(+), 20 deletions(-)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH 0/3] *** SUBJECT HERE ***
  2010-01-21 12:40 [Qemu-devel] [PATCH 0/3] Even more read-write/read-only fixes and cleanup Naphtali Sprei
@ 2010-01-21 12:40 ` Naphtali Sprei
  2010-01-21 12:40   ` Naphtali Sprei
  0 siblings, 1 reply; 9+ messages in thread
From: Naphtali Sprei @ 2010-01-21 12:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Naphtali Sprei

*** BLURB HERE ***

Naphtali Sprei (3):
  No need anymoe for bdrv_set_read_only
  Ask for read-write permissions when opening files
  Read-only device changed to opens it's file for read-only.

 block.c           |    7 -------
 block.h           |    1 -
 block/bochs.c     |    6 ++----
 block/parallels.c |    6 ++----
 block/qcow2.c     |    2 +-
 block/vvfat.c     |    2 +-
 qemu-img.c        |    4 ++--
 7 files changed, 8 insertions(+), 20 deletions(-)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH 0/3] *** SUBJECT HERE ***
  2010-01-21 12:40 ` [Qemu-devel] [PATCH 0/3] *** SUBJECT HERE *** Naphtali Sprei
@ 2010-01-21 12:40   ` Naphtali Sprei
  2010-01-21 12:40     ` [Qemu-devel] [PATCH 1/3] No need anymoe for bdrv_set_read_only Naphtali Sprei
  0 siblings, 1 reply; 9+ messages in thread
From: Naphtali Sprei @ 2010-01-21 12:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Naphtali Sprei

*** BLURB HERE ***

Naphtali Sprei (3):
  No need anymore for bdrv_set_read_only
  Ask for read-write permissions when opening files where needed
  Read-only device changed to opens it's file for read-only.

 block.c           |    7 -------
 block.h           |    1 -
 block/bochs.c     |    6 ++----
 block/parallels.c |    6 ++----
 block/qcow2.c     |    2 +-
 block/vvfat.c     |    2 +-
 qemu-img.c        |    4 ++--
 7 files changed, 8 insertions(+), 20 deletions(-)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH 1/3] No need anymoe for bdrv_set_read_only
  2010-01-21 12:40   ` Naphtali Sprei
@ 2010-01-21 12:40     ` Naphtali Sprei
  2010-01-21 12:40       ` [Qemu-devel] [PATCH 1/3] No need anymore " Naphtali Sprei
  2010-01-26 22:05       ` [Qemu-devel] [PATCH 1/3] No need anymoe for bdrv_set_read_only Anthony Liguori
  0 siblings, 2 replies; 9+ messages in thread
From: Naphtali Sprei @ 2010-01-21 12:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Naphtali Sprei


Signed-off-by: Naphtali Sprei <nsprei@redhat.com>
---
 block.c |    7 -------
 block.h |    1 -
 2 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/block.c b/block.c
index 73c26ec..8378c18 100644
--- a/block.c
+++ b/block.c
@@ -1009,13 +1009,6 @@ int bdrv_is_read_only(BlockDriverState *bs)
     return bs->read_only;
 }
 
-int bdrv_set_read_only(BlockDriverState *bs, int read_only)
-{
-    int ret = bs->read_only;
-    bs->read_only = read_only;
-    return ret;
-}
-
 int bdrv_is_sg(BlockDriverState *bs)
 {
     return bs->sg;
diff --git a/block.h b/block.h
index fd4e8dd..1aec453 100644
--- a/block.h
+++ b/block.h
@@ -147,7 +147,6 @@ int bdrv_get_type_hint(BlockDriverState *bs);
 int bdrv_get_translation_hint(BlockDriverState *bs);
 int bdrv_is_removable(BlockDriverState *bs);
 int bdrv_is_read_only(BlockDriverState *bs);
-int bdrv_set_read_only(BlockDriverState *bs, int read_only);
 int bdrv_is_sg(BlockDriverState *bs);
 int bdrv_enable_write_cache(BlockDriverState *bs);
 int bdrv_is_inserted(BlockDriverState *bs);
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH 1/3] No need anymore for bdrv_set_read_only
  2010-01-21 12:40     ` [Qemu-devel] [PATCH 1/3] No need anymoe for bdrv_set_read_only Naphtali Sprei
@ 2010-01-21 12:40       ` Naphtali Sprei
  2010-01-21 12:40         ` [Qemu-devel] [PATCH 2/3] Ask for read-write permissions when opening files Naphtali Sprei
  2010-01-26 22:05       ` [Qemu-devel] [PATCH 1/3] No need anymoe for bdrv_set_read_only Anthony Liguori
  1 sibling, 1 reply; 9+ messages in thread
From: Naphtali Sprei @ 2010-01-21 12:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Naphtali Sprei


Signed-off-by: Naphtali Sprei <nsprei@redhat.com>
---
 block.c |    7 -------
 block.h |    1 -
 2 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/block.c b/block.c
index 73c26ec..8378c18 100644
--- a/block.c
+++ b/block.c
@@ -1009,13 +1009,6 @@ int bdrv_is_read_only(BlockDriverState *bs)
     return bs->read_only;
 }
 
-int bdrv_set_read_only(BlockDriverState *bs, int read_only)
-{
-    int ret = bs->read_only;
-    bs->read_only = read_only;
-    return ret;
-}
-
 int bdrv_is_sg(BlockDriverState *bs)
 {
     return bs->sg;
diff --git a/block.h b/block.h
index fd4e8dd..1aec453 100644
--- a/block.h
+++ b/block.h
@@ -147,7 +147,6 @@ int bdrv_get_type_hint(BlockDriverState *bs);
 int bdrv_get_translation_hint(BlockDriverState *bs);
 int bdrv_is_removable(BlockDriverState *bs);
 int bdrv_is_read_only(BlockDriverState *bs);
-int bdrv_set_read_only(BlockDriverState *bs, int read_only);
 int bdrv_is_sg(BlockDriverState *bs);
 int bdrv_enable_write_cache(BlockDriverState *bs);
 int bdrv_is_inserted(BlockDriverState *bs);
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH 2/3] Ask for read-write permissions when opening files
  2010-01-21 12:40       ` [Qemu-devel] [PATCH 1/3] No need anymore " Naphtali Sprei
@ 2010-01-21 12:40         ` Naphtali Sprei
  2010-01-21 12:40           ` [Qemu-devel] [PATCH 2/3] Ask for read-write permissions when opening files where needed Naphtali Sprei
  0 siblings, 1 reply; 9+ messages in thread
From: Naphtali Sprei @ 2010-01-21 12:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Naphtali Sprei

Found some places that seems needs this explicitly, now that
read-write is not the default.

Signed-off-by: Naphtali Sprei <nsprei@redhat.com>
---
 block/qcow2.c |    2 +-
 block/vvfat.c |    2 +-
 qemu-img.c    |    4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/block/qcow2.c b/block/qcow2.c
index 6622eba..91835f1 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -961,7 +961,7 @@ static int qcow_create2(const char *filename, int64_t total_size,
     if (prealloc) {
         BlockDriverState *bs;
         bs = bdrv_new("");
-        bdrv_open(bs, filename, BDRV_O_CACHE_WB);
+        bdrv_open(bs, filename, BDRV_O_CACHE_WB | BDRV_O_RDWR);
         preallocate(bs);
         bdrv_close(bs);
     }
diff --git a/block/vvfat.c b/block/vvfat.c
index 063f731..8e12f92 100644
--- a/block/vvfat.c
+++ b/block/vvfat.c
@@ -2787,7 +2787,7 @@ static int enable_write_target(BDRVVVFATState *s)
     if (bdrv_create(bdrv_qcow, s->qcow_filename, options) < 0)
 	return -1;
     s->qcow = bdrv_new("");
-    if (s->qcow == NULL || bdrv_open(s->qcow, s->qcow_filename, 0) < 0)
+    if (s->qcow == NULL || bdrv_open(s->qcow, s->qcow_filename, BDRV_O_RDWR) < 0)
 	return -1;
 
 #ifndef _WIN32
diff --git a/qemu-img.c b/qemu-img.c
index 3cea8ce..cbba4fc 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -1116,7 +1116,7 @@ static int img_rebase(int argc, char **argv)
     if (!bs)
         error("Not enough memory");
 
-    flags = BRDV_O_FLAGS | (unsafe ? BDRV_O_NO_BACKING : 0);
+    flags = BRDV_O_FLAGS | BDRV_O_RDWR | (unsafe ? BDRV_O_NO_BACKING : 0);
     if (bdrv_open2(bs, filename, flags, NULL) < 0) {
         error("Could not open '%s'", filename);
     }
@@ -1157,7 +1157,7 @@ static int img_rebase(int argc, char **argv)
         }
 
         bs_new_backing = bdrv_new("new_backing");
-        if (bdrv_open2(bs_new_backing, out_baseimg, BRDV_O_FLAGS,
+        if (bdrv_open2(bs_new_backing, out_baseimg, BRDV_O_FLAGS | BDRV_O_RDWR,
             new_backing_drv))
         {
             error("Could not open new backing file '%s'", backing_name);
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH 2/3] Ask for read-write permissions when opening files where needed
  2010-01-21 12:40         ` [Qemu-devel] [PATCH 2/3] Ask for read-write permissions when opening files Naphtali Sprei
@ 2010-01-21 12:40           ` Naphtali Sprei
  2010-01-21 12:40             ` [Qemu-devel] [PATCH 3/3] Read-only device changed to opens it's file for read-only Naphtali Sprei
  0 siblings, 1 reply; 9+ messages in thread
From: Naphtali Sprei @ 2010-01-21 12:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Naphtali Sprei

Found some places that seems needs this explicitly, now that
read-write is not the default.

Signed-off-by: Naphtali Sprei <nsprei@redhat.com>
---
 block/qcow2.c |    2 +-
 block/vvfat.c |    2 +-
 qemu-img.c    |    4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/block/qcow2.c b/block/qcow2.c
index 6622eba..91835f1 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -961,7 +961,7 @@ static int qcow_create2(const char *filename, int64_t total_size,
     if (prealloc) {
         BlockDriverState *bs;
         bs = bdrv_new("");
-        bdrv_open(bs, filename, BDRV_O_CACHE_WB);
+        bdrv_open(bs, filename, BDRV_O_CACHE_WB | BDRV_O_RDWR);
         preallocate(bs);
         bdrv_close(bs);
     }
diff --git a/block/vvfat.c b/block/vvfat.c
index 063f731..8e12f92 100644
--- a/block/vvfat.c
+++ b/block/vvfat.c
@@ -2787,7 +2787,7 @@ static int enable_write_target(BDRVVVFATState *s)
     if (bdrv_create(bdrv_qcow, s->qcow_filename, options) < 0)
 	return -1;
     s->qcow = bdrv_new("");
-    if (s->qcow == NULL || bdrv_open(s->qcow, s->qcow_filename, 0) < 0)
+    if (s->qcow == NULL || bdrv_open(s->qcow, s->qcow_filename, BDRV_O_RDWR) < 0)
 	return -1;
 
 #ifndef _WIN32
diff --git a/qemu-img.c b/qemu-img.c
index 3cea8ce..cbba4fc 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -1116,7 +1116,7 @@ static int img_rebase(int argc, char **argv)
     if (!bs)
         error("Not enough memory");
 
-    flags = BRDV_O_FLAGS | (unsafe ? BDRV_O_NO_BACKING : 0);
+    flags = BRDV_O_FLAGS | BDRV_O_RDWR | (unsafe ? BDRV_O_NO_BACKING : 0);
     if (bdrv_open2(bs, filename, flags, NULL) < 0) {
         error("Could not open '%s'", filename);
     }
@@ -1157,7 +1157,7 @@ static int img_rebase(int argc, char **argv)
         }
 
         bs_new_backing = bdrv_new("new_backing");
-        if (bdrv_open2(bs_new_backing, out_baseimg, BRDV_O_FLAGS,
+        if (bdrv_open2(bs_new_backing, out_baseimg, BRDV_O_FLAGS | BDRV_O_RDWR,
             new_backing_drv))
         {
             error("Could not open new backing file '%s'", backing_name);
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH 3/3] Read-only device changed to opens it's file for read-only.
  2010-01-21 12:40           ` [Qemu-devel] [PATCH 2/3] Ask for read-write permissions when opening files where needed Naphtali Sprei
@ 2010-01-21 12:40             ` Naphtali Sprei
  0 siblings, 0 replies; 9+ messages in thread
From: Naphtali Sprei @ 2010-01-21 12:40 UTC (permalink / raw)
  To: qemu-devel; +Cc: Naphtali Sprei


Signed-off-by: Naphtali Sprei <nsprei@redhat.com>
---
 block/bochs.c     |    6 ++----
 block/parallels.c |    6 ++----
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/block/bochs.c b/block/bochs.c
index 3489258..fb83594 100644
--- a/block/bochs.c
+++ b/block/bochs.c
@@ -116,11 +116,9 @@ static int bochs_open(BlockDriverState *bs, const char *filename, int flags)
     struct bochs_header bochs;
     struct bochs_header_v1 header_v1;
 
-    fd = open(filename, O_RDWR | O_BINARY);
+    fd = open(filename, O_RDONLY | O_BINARY);
     if (fd < 0) {
-        fd = open(filename, O_RDONLY | O_BINARY);
-        if (fd < 0)
-            return -1;
+        return -1;
     }
 
     bs->read_only = 1; // no write support yet
diff --git a/block/parallels.c b/block/parallels.c
index 63b6738..41b3a7c 100644
--- a/block/parallels.c
+++ b/block/parallels.c
@@ -74,11 +74,9 @@ static int parallels_open(BlockDriverState *bs, const char *filename, int flags)
     int fd, i;
     struct parallels_header ph;
 
-    fd = open(filename, O_RDWR | O_BINARY | O_LARGEFILE);
+    fd = open(filename, O_RDONLY | O_BINARY | O_LARGEFILE);
     if (fd < 0) {
-        fd = open(filename, O_RDONLY | O_BINARY | O_LARGEFILE);
-        if (fd < 0)
-            return -1;
+        return -1;
     }
 
     bs->read_only = 1; // no write support yet
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH 1/3] No need anymoe for bdrv_set_read_only
  2010-01-21 12:40     ` [Qemu-devel] [PATCH 1/3] No need anymoe for bdrv_set_read_only Naphtali Sprei
  2010-01-21 12:40       ` [Qemu-devel] [PATCH 1/3] No need anymore " Naphtali Sprei
@ 2010-01-26 22:05       ` Anthony Liguori
  1 sibling, 0 replies; 9+ messages in thread
From: Anthony Liguori @ 2010-01-26 22:05 UTC (permalink / raw)
  To: Naphtali Sprei; +Cc: qemu-devel

On 01/21/2010 06:40 AM, Naphtali Sprei wrote:
> Signed-off-by: Naphtali Sprei<nsprei@redhat.com>
>    

Applied all.  Thanks.

Regards,

Anthony Liguori

> ---
>   block.c |    7 -------
>   block.h |    1 -
>   2 files changed, 0 insertions(+), 8 deletions(-)
>
> diff --git a/block.c b/block.c
> index 73c26ec..8378c18 100644
> --- a/block.c
> +++ b/block.c
> @@ -1009,13 +1009,6 @@ int bdrv_is_read_only(BlockDriverState *bs)
>       return bs->read_only;
>   }
>
> -int bdrv_set_read_only(BlockDriverState *bs, int read_only)
> -{
> -    int ret = bs->read_only;
> -    bs->read_only = read_only;
> -    return ret;
> -}
> -
>   int bdrv_is_sg(BlockDriverState *bs)
>   {
>       return bs->sg;
> diff --git a/block.h b/block.h
> index fd4e8dd..1aec453 100644
> --- a/block.h
> +++ b/block.h
> @@ -147,7 +147,6 @@ int bdrv_get_type_hint(BlockDriverState *bs);
>   int bdrv_get_translation_hint(BlockDriverState *bs);
>   int bdrv_is_removable(BlockDriverState *bs);
>   int bdrv_is_read_only(BlockDriverState *bs);
> -int bdrv_set_read_only(BlockDriverState *bs, int read_only);
>   int bdrv_is_sg(BlockDriverState *bs);
>   int bdrv_enable_write_cache(BlockDriverState *bs);
>   int bdrv_is_inserted(BlockDriverState *bs);
>    

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2010-01-26 22:05 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-21 12:40 [Qemu-devel] [PATCH 0/3] Even more read-write/read-only fixes and cleanup Naphtali Sprei
2010-01-21 12:40 ` [Qemu-devel] [PATCH 0/3] *** SUBJECT HERE *** Naphtali Sprei
2010-01-21 12:40   ` Naphtali Sprei
2010-01-21 12:40     ` [Qemu-devel] [PATCH 1/3] No need anymoe for bdrv_set_read_only Naphtali Sprei
2010-01-21 12:40       ` [Qemu-devel] [PATCH 1/3] No need anymore " Naphtali Sprei
2010-01-21 12:40         ` [Qemu-devel] [PATCH 2/3] Ask for read-write permissions when opening files Naphtali Sprei
2010-01-21 12:40           ` [Qemu-devel] [PATCH 2/3] Ask for read-write permissions when opening files where needed Naphtali Sprei
2010-01-21 12:40             ` [Qemu-devel] [PATCH 3/3] Read-only device changed to opens it's file for read-only Naphtali Sprei
2010-01-26 22:05       ` [Qemu-devel] [PATCH 1/3] No need anymoe for bdrv_set_read_only Anthony Liguori

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).