From: Stefan Hajnoczi Date: Mon, 15 Apr 2013 15:17:33 +0000 (+0200) Subject: qemu-img: do not zero-pad the compressed write buffer X-Git-Tag: v1.5.0-rc0~196^2~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=54f106d5fd51fcf385bab2ddf125477e83758038;p=thirdparty%2Fqemu.git qemu-img: do not zero-pad the compressed write buffer bdrv_write_compressed() does not allow requests that span the end of the device. Therefore it is useless to zero-pad the last cluster and thereby exceed the end of the device. Let image formats handle zero-padding the final compressed cluster, if necessary. Signed-off-by: Stefan Hajnoczi Signed-off-by: Kevin Wolf --- diff --git a/qemu-img.c b/qemu-img.c index 31627b0da82..cd096a13615 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -1425,12 +1425,8 @@ static int img_convert(int argc, char **argv) } assert (remainder == 0); - if (n < cluster_sectors) { - memset(buf + n * 512, 0, cluster_size - n * 512); - } - if (!buffer_is_zero(buf, cluster_size)) { - ret = bdrv_write_compressed(out_bs, sector_num, buf, - cluster_sectors); + if (!buffer_is_zero(buf, n * BDRV_SECTOR_SIZE)) { + ret = bdrv_write_compressed(out_bs, sector_num, buf, n); if (ret != 0) { error_report("error while compressing sector %" PRId64 ": %s", sector_num, strerror(-ret));