[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 3/5] qcow2: Resize the cache upon image resizing
From: |
Leonid Bloch |
Subject: |
[Qemu-devel] [PATCH v3 3/5] qcow2: Resize the cache upon image resizing |
Date: |
Wed, 8 Aug 2018 10:10:49 +0300 |
The caches are now recalculated upon image resizing. This is done
because the new default behavior of assigning a sufficient L2 cache to
cover the entire image implies that the cache will still be sufficient
after an image resizing.
Signed-off-by: Leonid Bloch <address@hidden>
---
block/qcow2.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/block/qcow2.c b/block/qcow2.c
index 98cb96aaca..f60cb92169 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -3639,6 +3639,8 @@ static int coroutine_fn
qcow2_co_truncate(BlockDriverState *bs, int64_t offset,
}
}
+ bs->total_sectors = offset / BDRV_SECTOR_SIZE;
+
/* write updated header.size */
offset = cpu_to_be64(offset);
ret = bdrv_pwrite_sync(bs->file, offsetof(QCowHeader, size),
@@ -3649,6 +3651,12 @@ static int coroutine_fn
qcow2_co_truncate(BlockDriverState *bs, int64_t offset,
}
s->l1_vm_state_index = new_l1_size;
+ /* Update cache sizes */
+ QDict *options = qdict_clone_shallow(bs->options);
+ ret = qcow2_update_options(bs, options, s->flags, errp);
+ if (ret < 0) {
+ goto fail;
+ }
ret = 0;
fail:
qemu_co_mutex_unlock(&s->lock);
--
2.17.1
[Qemu-devel] [PATCH v3 4/5] qcow2: Set the default cache-clean-interval to 30 seconds, Leonid Bloch, 2018/08/08
[Qemu-devel] [PATCH v3 3/5] qcow2: Resize the cache upon image resizing,
Leonid Bloch <=
[Qemu-devel] [PATCH v3 5/5] qcow2: Explicit number replaced by a constant, Leonid Bloch, 2018/08/08