From fa27c478102a6b5d1c6b02c005607ad9404b915f Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Thu, 11 Jul 2019 15:29:35 +0200 Subject: [PATCH] doc: Preallocation does not require writing zeroes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When preallocating an encrypted qcow2 image, it just lets the protocol driver write data and then does not mark the clusters as zero. Therefore, reading this image will yield effectively random data. As such, we have not fulfilled the promise of always writing zeroes when preallocating an image in a while. It seems that nobody has really cared, so change the documentation to conform to qemu's actual behavior. Signed-off-by: Max Reitz Message-id: 20190711132935.13070-1-mreitz@redhat.com Reviewed-by: Eric Blake Reviewed-by: Daniel P. Berrangé Reviewed-by: Maxim Levitsky Signed-off-by: Max Reitz --- docs/qemu-block-drivers.texi | 4 ++-- qapi/block-core.json | 9 +++++---- qemu-img.texi | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/qemu-block-drivers.texi b/docs/qemu-block-drivers.texi index 91ab0eceae2e..c02547e28c62 100644 --- a/docs/qemu-block-drivers.texi +++ b/docs/qemu-block-drivers.texi @@ -31,8 +31,8 @@ Supported options: @item preallocation Preallocation mode (allowed values: @code{off}, @code{falloc}, @code{full}). @code{falloc} mode preallocates space for image by calling posix_fallocate(). -@code{full} mode preallocates space for image by writing zeros to underlying -storage. +@code{full} mode preallocates space for image by writing data to underlying +storage. This data may or may not be zero, depending on the storage location. @end table @item qcow2 diff --git a/qapi/block-core.json b/qapi/block-core.json index a5ab38db99bc..e6edd641f18a 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -5178,10 +5178,11 @@ # @off: no preallocation # @metadata: preallocate only for metadata # @falloc: like @full preallocation but allocate disk space by -# posix_fallocate() rather than writing zeros. -# @full: preallocate all data by writing zeros to device to ensure disk -# space is really available. @full preallocation also sets up -# metadata correctly. +# posix_fallocate() rather than writing data. +# @full: preallocate all data by writing it to the device to ensure +# disk space is really available. This data may or may not be +# zero, depending on the image format and storage. +# @full preallocation also sets up metadata correctly. # # Since: 2.2 ## diff --git a/qemu-img.texi b/qemu-img.texi index c8e9bba51578..b5156d631681 100644 --- a/qemu-img.texi +++ b/qemu-img.texi @@ -666,8 +666,8 @@ Supported options: @item preallocation Preallocation mode (allowed values: @code{off}, @code{falloc}, @code{full}). @code{falloc} mode preallocates space for image by calling posix_fallocate(). -@code{full} mode preallocates space for image by writing zeros to underlying -storage. +@code{full} mode preallocates space for image by writing data to underlying +storage. This data may or may not be zero, depending on the storage location. @end table @item qcow2