aboutsummaryrefslogtreecommitdiff
path: root/block/sheepdog.c
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2020-04-28 15:29:01 -0500
committerKevin Wolf <kwolf@redhat.com>2020-05-08 13:26:35 +0200
commitfec00559e71c94749deac176f6c4bebf81fbe7b8 (patch)
tree4fdc555d7dc44da42b85553038ae11ca220cdb91 /block/sheepdog.c
parent2f98910d5b89733b1a5df06c6d2a7056da32a7b7 (diff)
downloadqemu-fec00559e71c94749deac176f6c4bebf81fbe7b8.zip
qemu-fec00559e71c94749deac176f6c4bebf81fbe7b8.tar.gz
qemu-fec00559e71c94749deac176f6c4bebf81fbe7b8.tar.bz2
sheepdog: Support BDRV_REQ_ZERO_WRITE for truncate
Our .bdrv_has_zero_init_truncate always returns 1 because sheepdog always 0-fills; we can use that same knowledge to implement BDRV_REQ_ZERO_WRITE by ignoring it. Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <20200428202905.770727-6-eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block/sheepdog.c')
-rw-r--r--block/sheepdog.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/block/sheepdog.c b/block/sheepdog.c
index 2eb6193..739e6de 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -1654,6 +1654,7 @@ static int sd_open(BlockDriverState *bs, QDict *options, int flags,
memcpy(&s->inode, buf, sizeof(s->inode));
bs->total_sectors = s->inode.vdi_size / BDRV_SECTOR_SIZE;
+ bs->supported_truncate_flags = BDRV_REQ_ZERO_WRITE;
pstrcpy(s->name, sizeof(s->name), vdi);
qemu_co_mutex_init(&s->lock);
qemu_co_mutex_init(&s->queue_lock);