Hi,
https://gitlab.com/qemu-project/qemu/-/issues/1507 reports a bug in FUSE
exports: fallocate(PUNCH_HOLE) is implemented with blk_pdiscard(), but
its man page documents that a successful call will result in the data
being read as zero. blk_pdiscard() does not guarantee this, so we must
use blk_pwrite_zeroes() instead (with MAY_UNMAP | NO_FALLBACK, which
differentiates it from fallocate(ZERO_RANGE)).
Patch 2 adds a regression test.
Hanna Czenczek (2):
block/fuse: Let PUNCH_HOLE write zeroes
iotests/308: Add test for 'write -zu'
block/export/fuse.c | 11 +++++++++-
tests/qemu-iotests/308 | 43 ++++++++++++++++++++++++++++++++++++++
tests/qemu-iotests/308.out | 35 +++++++++++++++++++++++++++++++
3 files changed, 88 insertions(+), 1 deletion(-)
--
2.39.1