From: Eric Blake Date: Tue, 28 Apr 2020 20:29:02 +0000 (-0500) Subject: ssh: Support BDRV_REQ_ZERO_WRITE for truncate X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=be9c9404db7e6992946fa55c75ca61dfb20926eb;p=qemu.git ssh: Support BDRV_REQ_ZERO_WRITE for truncate Our .bdrv_has_zero_init_truncate can detect when the remote side always zero fills; we can reuse that same knowledge to implement BDRV_REQ_ZERO_WRITE by ignoring it when the server gives it to us for free. Signed-off-by: Eric Blake Message-Id: <20200428202905.770727-7-eblake@redhat.com> Reviewed-by: Richard W.M. Jones Signed-off-by: Kevin Wolf --- diff --git a/block/ssh.c b/block/ssh.c index 9eb33df859..f9e08a4900 100644 --- a/block/ssh.c +++ b/block/ssh.c @@ -883,6 +883,10 @@ static int ssh_file_open(BlockDriverState *bs, QDict *options, int bdrv_flags, /* Go non-blocking. */ ssh_set_blocking(s->session, 0); + if (s->attrs->type == SSH_FILEXFER_TYPE_REGULAR) { + bs->supported_truncate_flags = BDRV_REQ_ZERO_WRITE; + } + qapi_free_BlockdevOptionsSsh(opts); return 0;