qemu-block
[Top][All Lists]
Advanced

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

Re: [PATCH v7 16/47] block: Use bdrv_cow_child() in bdrv_co_truncate()


From: Andrey Shinkevich
Subject: Re: [PATCH v7 16/47] block: Use bdrv_cow_child() in bdrv_co_truncate()
Date: Fri, 10 Jul 2020 18:54:04 +0300
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Thunderbird/68.9.0

On 25.06.2020 18:21, Max Reitz wrote:
The condition modified here is not about potentially filtered children,
but only about COW sources (i.e. traditional backing files).

Signed-off-by: Max Reitz <mreitz@redhat.com>
---
  block/io.c | 7 ++++---
  1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/block/io.c b/block/io.c
index dc9891d6ce..097a3861d8 100644
--- a/block/io.c
+++ b/block/io.c
@@ -3308,7 +3308,7 @@ int coroutine_fn bdrv_co_truncate(BdrvChild *child, 
int64_t offset, bool exact,
                                    Error **errp)
  {
      BlockDriverState *bs = child->bs;
-    BdrvChild *filtered;
+    BdrvChild *filtered, *backing;
      BlockDriver *drv = bs->drv;
      BdrvTrackedRequest req;
      int64_t old_size, new_bytes;
@@ -3361,6 +3361,7 @@ int coroutine_fn bdrv_co_truncate(BdrvChild *child, 
int64_t offset, bool exact,
      }
filtered = bdrv_filter_child(bs);
+    backing = bdrv_cow_child(bs);
/*
       * If the image has a backing file that is large enough that it would
@@ -3372,10 +3373,10 @@ int coroutine_fn bdrv_co_truncate(BdrvChild *child, 
int64_t offset, bool exact,
       * backing file, taking care of keeping things consistent with that 
backing
       * file is the user's responsibility.
       */
-    if (new_bytes && bs->backing) {
+    if (new_bytes && backing) {
          int64_t backing_len;
- backing_len = bdrv_getlength(backing_bs(bs));
+        backing_len = bdrv_getlength(backing->bs);
          if (backing_len < 0) {
              ret = backing_len;
              error_setg_errno(errp, -ret, "Could not get backing file size");
Reviewed-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>



reply via email to

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