From 22741f5582ea003c3518aff76e8df6561403f88b Mon Sep 17 00:00:00 2001 From: Bernd Schubert Date: Mon, 4 Dec 2023 15:58:45 +0100 Subject: Add FUSE_CAP_DIRECT_IO_ALLOW_MMAP and use in passthrough_hp This is not called FUSE_CAP_DIRECT_IO_RELAX, as the kernel flag FUSE_DIRECT_IO_RELAX is supposed to be renamed to FUSE_DIRECT_IO_ALLOW_MMAP. The corresponding kernel patches just did not land yet. --- include/fuse_common.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'include') diff --git a/include/fuse_common.h b/include/fuse_common.h index 3ff14ec..a804134 100644 --- a/include/fuse_common.h +++ b/include/fuse_common.h @@ -440,6 +440,15 @@ struct fuse_loop_config_v1 { */ #define FUSE_CAP_SETXATTR_EXT (1 << 27) +/** + * Files opened with FUSE_DIRECT_IO do not support MAP_SHARED mmap. This restriction + * is relaxed through FUSE_CAP_DIRECT_IO_RELAX (kernel flag: FUSE_DIRECT_IO_RELAX). + * MAP_SHARED is disabled by default for FUSE_DIRECT_IO, as this flag can be used to + * ensure coherency between mount points (or network clients) and with kernel page + * cache as enforced by mmap that cannot be guaranteed anymore. + */ +#define FUSE_CAP_DIRECT_IO_ALLOW_MMAP (1 << 27) + /** * Ioctl flags * -- cgit v1.2.3