qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] block: Use BDRV_O_NO_BACKING where appropriate


From: Fam Zheng
Subject: Re: [Qemu-devel] [PATCH] block: Use BDRV_O_NO_BACKING where appropriate
Date: Fri, 29 Nov 2013 09:14:03 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.1

On 2013年11月28日 19:02, Kevin Wolf wrote:
If you open an image temporarily just because you want to check its size
or get it flushed, there's no real reason to open the whole backing file
chain.

Signed-off-by: Kevin Wolf <address@hidden>
---
  block.c       | 3 ++-
  block/qcow2.c | 3 ++-
  block/vmdk.c  | 2 +-
  3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/block.c b/block.c
index 03e45fc..e2745a5 100644
--- a/block.c
+++ b/block.c
@@ -1061,7 +1061,8 @@ int bdrv_open(BlockDriverState *bs, const char *filename, 
QDict *options,
          /* Get the required size from the image */
          bs1 = bdrv_new("");
          QINCREF(options);
-        ret = bdrv_open(bs1, filename, options, 0, drv, &local_err);
+        ret = bdrv_open(bs1, filename, options, BDRV_O_NO_BACKING,
+                        drv, &local_err);
          if (ret < 0) {
              bdrv_unref(bs1);
              goto fail;
diff --git a/block/qcow2.c b/block/qcow2.c
index 2fe37ed..8e2b6c7 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -1588,7 +1588,8 @@ static int qcow2_create2(const char *filename, int64_t 
total_size,

      /* Reopen the image without BDRV_O_NO_FLUSH to flush it before returning 
*/
      ret = bdrv_open(bs, filename, NULL,
-                    BDRV_O_RDWR | BDRV_O_CACHE_WB, drv, &local_err);
+                    BDRV_O_RDWR | BDRV_O_CACHE_WB | BDRV_O_NO_BACKING,
+                    drv, &local_err);
      if (error_is_set(&local_err)) {
          error_propagate(errp, local_err);
          goto out;
diff --git a/block/vmdk.c b/block/vmdk.c
index 6555663..5fb6c81 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -1690,7 +1690,7 @@ static int vmdk_create(const char *filename, 
QEMUOptionParameter *options,
      }
      if (backing_file) {
          BlockDriverState *bs = bdrv_new("");
-        ret = bdrv_open(bs, backing_file, NULL, 0, NULL, errp);
+        ret = bdrv_open(bs, backing_file, NULL, BDRV_O_NO_BACKING, NULL, errp);
          if (ret != 0) {
              bdrv_unref(bs);
              return ret;


Reviewed-by: Fam Zheng <address@hidden>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]