summaryrefslogtreecommitdiff
path: root/block/rbd.c
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2020-04-28 15:29:00 -0500
committerKevin Wolf <kwolf@redhat.com>2020-05-08 13:26:35 +0200
commit2f98910d5b89733b1a5df06c6d2a7056da32a7b7 (patch)
tree0180454d051879f62437a25eaf286049b338d8f0 /block/rbd.c
parent8f23aaf5d6a5458e251c5d5d0555d9e515355e35 (diff)
downloadqemu-2f98910d5b89733b1a5df06c6d2a7056da32a7b7.zip
rbd: Support BDRV_REQ_ZERO_WRITE for truncate
Our .bdrv_has_zero_init_truncate always returns 1 because rbd 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-5-eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block/rbd.c')
-rw-r--r--block/rbd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/block/rbd.c b/block/rbd.c
index f2d52091c7..331c45adb2 100644
--- a/block/rbd.c
+++ b/block/rbd.c
@@ -817,6 +817,9 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict *options, int flags,
}
}
+ /* When extending regular files, we get zeros from the OS */
+ bs->supported_truncate_flags = BDRV_REQ_ZERO_WRITE;
+
r = 0;
goto out;