Patchwork block: Fix bdrv_commit

login
register
mail settings
Submitter Kevin Wolf
Date May 6, 2010, 2:44 p.m.
Message ID <1273157074-7918-1-git-send-email-kwolf@redhat.com>
Download mbox | patch
Permalink /patch/51838/
State New
Headers show

Comments

Kevin Wolf - May 6, 2010, 2:44 p.m.
When reopening the image, don't guess the driver, but use the same driver as
was used before. This is important if the format=... option was used for that
image.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
Naphtali Sprei - May 6, 2010, 2:58 p.m.
Kevin Wolf wrote:
> When reopening the image, don't guess the driver, but use the same driver as
> was used before. This is important if the format=... option was used for that
> image.
> 
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  block.c |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/block.c b/block.c
> index adb3e5d..ffe82f8 100644
> --- a/block.c
> +++ b/block.c
> @@ -701,12 +701,12 @@ int bdrv_commit(BlockDriverState *bs)
>          bdrv_delete(bs->backing_hd);
>          bs->backing_hd = NULL;
>          bs_rw = bdrv_new("");
> -        rw_ret = bdrv_open(bs_rw, filename, open_flags | BDRV_O_RDWR, NULL);
> +        rw_ret = bdrv_open(bs_rw, filename, open_flags | BDRV_O_RDWR, drv);
>          if (rw_ret < 0) {
>              bdrv_delete(bs_rw);
>              /* try to re-open read-only */
>              bs_ro = bdrv_new("");
> -            ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, NULL);
> +            ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, drv);
>              if (ret < 0) {
>                  bdrv_delete(bs_ro);
>                  /* drive not functional anymore */
> @@ -758,7 +758,7 @@ ro_cleanup:
>          bdrv_delete(bs->backing_hd);
>          bs->backing_hd = NULL;
>          bs_ro = bdrv_new("");
> -        ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, NULL);
> +        ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, drv);
>          if (ret < 0) {
>              bdrv_delete(bs_ro);
>              /* drive not functional anymore */

Acked-by: Naphtali Sprei <nsprei@redhat.com>
Christoph Hellwig - May 6, 2010, 7:56 p.m.
On Thu, May 06, 2010 at 04:44:34PM +0200, Kevin Wolf wrote:
> When reopening the image, don't guess the driver, but use the same driver as
> was used before. This is important if the format=... option was used for that
> image.
> 
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>

Looks good,


Reviewed-by: Christoph Hellwig <hch@lst.de>

Patch

diff --git a/block.c b/block.c
index adb3e5d..ffe82f8 100644
--- a/block.c
+++ b/block.c
@@ -701,12 +701,12 @@  int bdrv_commit(BlockDriverState *bs)
         bdrv_delete(bs->backing_hd);
         bs->backing_hd = NULL;
         bs_rw = bdrv_new("");
-        rw_ret = bdrv_open(bs_rw, filename, open_flags | BDRV_O_RDWR, NULL);
+        rw_ret = bdrv_open(bs_rw, filename, open_flags | BDRV_O_RDWR, drv);
         if (rw_ret < 0) {
             bdrv_delete(bs_rw);
             /* try to re-open read-only */
             bs_ro = bdrv_new("");
-            ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, NULL);
+            ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, drv);
             if (ret < 0) {
                 bdrv_delete(bs_ro);
                 /* drive not functional anymore */
@@ -758,7 +758,7 @@  ro_cleanup:
         bdrv_delete(bs->backing_hd);
         bs->backing_hd = NULL;
         bs_ro = bdrv_new("");
-        ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, NULL);
+        ret = bdrv_open(bs_ro, filename, open_flags & ~BDRV_O_RDWR, drv);
         if (ret < 0) {
             bdrv_delete(bs_ro);
             /* drive not functional anymore */