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@xxxxxxxxxx> > --- > src/util/virfdstream.c | 59 +++++++++++++++++++++++++++++++----------- > 1 file changed, 44 insertions(+), 15 deletions(-) Reviewed-by: Peter Krempa <pkrempa@xxxxxxxxxx>