aboutsummaryrefslogtreecommitdiff
path: root/block/copy-on-read.c
diff options
context:
space:
mode:
authorMax Reitz <mreitz@redhat.com>2019-11-28 16:12:36 +0100
committerKevin Wolf <kwolf@redhat.com>2020-09-07 12:31:31 +0200
commit4935e8be22745ff2b23bc87a5015176d991ce233 (patch)
treeff70e33191668fc24bdebdc9791f07fa606d1f1e /block/copy-on-read.c
parente7e754aec3aca3a509d8826cc9a6e6136e9aca65 (diff)
copy-on-read: Support compressed writes
Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block/copy-on-read.c')
-rw-r--r--block/copy-on-read.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/block/copy-on-read.c b/block/copy-on-read.c
index a6e3c74a68..a6a864f147 100644
--- a/block/copy-on-read.c
+++ b/block/copy-on-read.c
@@ -107,6 +107,16 @@ static int coroutine_fn cor_co_pdiscard(BlockDriverState *bs,
}
+static int coroutine_fn cor_co_pwritev_compressed(BlockDriverState *bs,
+ uint64_t offset,
+ uint64_t bytes,
+ QEMUIOVector *qiov)
+{
+ return bdrv_co_pwritev(bs->file, offset, bytes, qiov,
+ BDRV_REQ_WRITE_COMPRESSED);
+}
+
+
static void cor_eject(BlockDriverState *bs, bool eject_flag)
{
bdrv_eject(bs->file->bs, eject_flag);
@@ -131,6 +141,7 @@ static BlockDriver bdrv_copy_on_read = {
.bdrv_co_pwritev = cor_co_pwritev,
.bdrv_co_pwrite_zeroes = cor_co_pwrite_zeroes,
.bdrv_co_pdiscard = cor_co_pdiscard,
+ .bdrv_co_pwritev_compressed = cor_co_pwritev_compressed,
.bdrv_eject = cor_eject,
.bdrv_lock_medium = cor_lock_medium,