android_kernel_oneplus_msm8998/fs/fuse
Nikhilesh Reddy 5a9fde57cf fuse: Add support for passthrough read/write
Add support for filesystem passthrough read/write of files
when enabled in userspace through the option FUSE_PASSTHROUGH.

There are many FUSE based filesystems that perform checks or
enforce policy or perform some kind of decision making in certain
functions like the "open" call but simply act as a "passthrough"
when performing operations such as read or write.

When FUSE_PASSTHROUGH is enabled all the reads and writes
to the fuse mount point go directly to the passthrough filesystem
i.e a native filesystem that actually hosts the files rather than
through the fuse daemon. All requests that aren't read/write still
go thought the userspace code.

This allows for significantly better performance on read and writes.
The difference in performance between fuse and the native lower
filesystem is negligible.

There is also a significant cpu/power savings that is achieved which
is really important on embedded systems that use fuse for I/O.

Changelog:

v5:
Fix the check when setting the passthrough file
[Found when testing by Mike Shal]

v3 and v4:
Use the fs_stack_depth to prevent further stacking and a minor fix
[Fix suggested by Jann Horn]

v2:
Changed the feature name to passthrough from stacked_io
[Proposed by Linus Torvalds]

Signed-off-by: Nikhilesh Reddy <reddyn@codeaurora.org>
2016-03-22 11:15:47 -07:00
..
control.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
cuse.c cuse: fix memory leak 2015-11-10 10:32:36 +01:00
dev.c fuse: Add support for passthrough read/write 2016-03-22 11:15:47 -07:00
dir.c fuse: Add support for passthrough read/write 2016-03-22 11:15:47 -07:00
file.c fuse: Add support for passthrough read/write 2016-03-22 11:15:47 -07:00
fuse_i.h fuse: Add support for passthrough read/write 2016-03-22 11:15:47 -07:00
fuse_passthrough.h fuse: Add support for passthrough read/write 2016-03-22 11:15:47 -07:00
inode.c fuse: Add support for passthrough read/write 2016-03-22 11:15:47 -07:00
Kconfig fuse: Move CUSE Kconfig entry from fs/Kconfig into fs/fuse/Kconfig 2013-01-17 13:08:45 +01:00
Makefile fuse: Add support for passthrough read/write 2016-03-22 11:15:47 -07:00
passthrough.c fuse: Add support for passthrough read/write 2016-03-22 11:15:47 -07:00