Hi all, This series connects libfuse to the iomap-enabled fuse driver in Linux to get fuse servers out of the business of handling file I/O themselves. By keeping the IO path mostly within the kernel, we can dramatically improve the speed of disk-based filesystems. This enables us to move all the filesystem metadata parsing code out of the kernel and into userspace, which means that we can containerize them for security without losing a lot of performance. If you're going to start using this code, I strongly recommend pulling from my git trees, which are linked below. With a bit of luck, this should all go splendidly. Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=fuse-iomap --- Commits in this patchset: * libfuse: add kernel gates for FUSE_IOMAP and bump libfuse api version * libfuse: add fuse commands for iomap_begin and end * libfuse: add upper level iomap commands * libfuse: add a notification to add a new device to iomap * libfuse: add iomap ioend low level handler * libfuse: add upper level iomap ioend commands * libfuse: add FUSE_IOMAP_PAGECACHE * libfuse: allow discovery of the kernel's iomap capabilities --- include/fuse.h | 20 ++++++ include/fuse_common.h | 80 ++++++++++++++++++++++ include/fuse_kernel.h | 89 ++++++++++++++++++++++++- include/fuse_lowlevel.h | 95 ++++++++++++++++++++++++++ lib/fuse.c | 142 +++++++++++++++++++++++++++++++++++++++ lib/fuse_lowlevel.c | 170 +++++++++++++++++++++++++++++++++++++++++++++++ lib/fuse_versionscript | 2 + lib/meson.build | 2 - 8 files changed, 597 insertions(+), 3 deletions(-)