fuse: reserve values for mapping protocol
authorDr. David Alan Gilbert <dgilbert@redhat.com>
Fri, 2 Aug 2019 17:15:19 +0000 (18:15 +0100)
committerMiklos Szeredi <mszeredi@redhat.com>
Thu, 12 Sep 2019 12:59:41 +0000 (14:59 +0200)
commitc4bb667eaf520f21b3a3db0489682becc9c49bcc
treeb44080998e6fd3720dca4adb8b0338a3eace3e0b
parent501ae8ecae2ba5122774dee4445003505a7fd01b
fuse: reserve values for mapping protocol

SETUPMAPPING is a command for use with 'virtiofsd', a fuse-over-virtio
implementation; it may find use in other fuse impelementations as well in
which the kernel does not have access to the address space of the daemon
directly.

A SETUPMAPPING operation causes a section of a file to be mapped into a
memory window visible to the kernel.  The offsets in the file and the
window are defined by the kernel performing the operation.

The daemon may reject the request, for reasons including permissions and
limited resources.

When a request perfectly overlaps a previous mapping, the previous mapping
is replaced.  When a mapping partially overlaps a previous mapping, the
previous mapping is split into one or two smaller mappings.

REMOVEMAPPING is the complement to SETUPMAPPING; it unmaps a range of
mapped files from the window visible to the kernel.

The map_alignment field communicates the alignment constraint for
FUSE_SETUPMAPPING/FUSE_REMOVEMAPPING and allows the daemon to constrain the
addresses and file offsets chosen by the kernel.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
include/uapi/linux/fuse.h