mirror of
https://github.com/libfuse/libfuse.git
synced 2024-11-22 19:54:12 +08:00
0e0f43b79b
A previous PR supported extended max writes (eg write requests larger than 1 MB) by initializing the fuse session buffer size to use the max_pages_limit set in /proc/sys/fs/fuse. However, this is a huge problem for machines where multiple fuse servers may be running but only one server needs large writes. In this case, a lot of memory will be wasted and will lead to OOM issues. This PR does a reallocation of the session buffer transparently if the server set "se->conn.max_write" to a value larger than 1 MiB. This is only for buffers that are "owned" by libfuse - if the server wishes to provide its own allocated buffer for receiving/processing requests, then it should ensure that buffer is allocated to the proper size from the start. Local testing showed: echo 65535 | sudo tee /proc/sys/fs/fuse/max_pages_limit dd if=/dev/urandom of=hello_file bs=6M count=2 write requests: write request size is 5242880 write request size is 1048576 write request size is 5242880 write request size is 1048576 |
||
---|---|---|
.. | ||
cuse_lowlevel.h | ||
fuse_common.h | ||
fuse_kernel.h | ||
fuse_log.h | ||
fuse_lowlevel.h | ||
fuse_mount_compat.h | ||
fuse_opt.h | ||
fuse.h | ||
meson.build |