Commit 8599559580 ("fuse: Set direct_io and parallel_direct_writes")
broke use cases that require mmap() with MAP_SHARED on the export. In
particular, swtpm_setup using its 'file://' protocol requires this.
This is mentioned in the kernel documentation [0]:
> To allow shared mmap, the FUSE_DIRECT_IO_ALLOW_MMAP flag may be
> enabled in the FUSE_INIT reply.
[0]: https://www.kernel.org/doc/html/next/filesystems/fuse/fuse-io.html
Set the FUSE_DIRECT_IO_ALLOW_MMAP flag to restore compatibility with
users requiring shared mmap.
Fiona Ebner (3):
block/export/fuse: use struct fuse_init_in
block/export/fuse: set FUSE_DIRECT_IO_ALLOW_MMAP flag to fix
regression
iotests: test shared mmap for fuse export
block/export/fuse.c | 69 +++++++++---
tests/qemu-iotests/tests/fuse-mmap-shared | 103 ++++++++++++++++++
tests/qemu-iotests/tests/fuse-mmap-shared.out | 5 +
3 files changed, 161 insertions(+), 16 deletions(-)
create mode 100755 tests/qemu-iotests/tests/fuse-mmap-shared
create mode 100644 tests/qemu-iotests/tests/fuse-mmap-shared.out
--
2.47.3