On Tue, Jul 07, 2020 at 21:46:33 +0200, Michal Privoznik wrote:
This is similar to one of previous patches.
When receiving stream (on virStorageVolUpload() and subsequent
virStreamSparseSendAll()) we may receive a hole. If the volume we
are saving the incoming data into is a regular file we just
lseek() and ftruncate() to create the hole. But this won't work
if the file is a block device. If that is the case we must write
zeroes so that any subsequent reader reads nothing just zeroes
(just like they would from a hole in a regular file).
Resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=1852528
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/util/virfdstream.c | 59 +++++++++++++++++++++++++++++++-----------
1 file changed, 44 insertions(+), 15 deletions(-)
Reviewed-by: Peter Krempa <pkrempa(a)redhat.com>