Antonio SJ Musumeci
1253763de1
config.hpp
1 year ago
Antonio SJ Musumeci
a67d8650cf
config.hpp
1 year ago
Antonio SJ Musumeci
fde5acbe47
config.hpp
1 year ago
Antonio SJ Musumeci
07e7d76b7c
Add support for file io passthrough
If using Linux 6.9 or above and enabled (passthrough=true) files
opened or created will use the FUSE passthrough feature.
If direct-io=true / cache.files=off it will override passthrough. If
direct-io-allow-mmap is enabled only mmap will passthrough.
HANDLE_KILLPRIV and V2 are enabled now by default to remove the
kernel's need to issue getattr and getxattr requests.
moveonenospc will not work when leveraging passthrough.
1 year ago
Antonio SJ Musumeci
f0444a1ca9
Add support for 'direct-io-allow-mmap' if supported by kernel
1 year ago
Antonio SJ Musumeci
0ca5d6aad0
Add export-support option as possible workaround for NFS EIO issues
1 year ago
Antonio SJ Musumeci
f66fb7e2d4
Fix user.mergerfs.pid
2 years ago
Antonio SJ Musumeci
6aa6452d3e
Add flushonclose feature
2 years ago
Antonio SJ Musumeci
c92a10021e
Add readdir policies
2 years ago
Antonio SJ Musumeci
5ab0fbcaee
Add manual GC triggering + configurable process queue depth
Yes, these are unrelated changes but somehow ended up being
prototyped together and I'm too lazy to separate them.
2 years ago
Antonio SJ Musumeci
6a14a10e6c
Fix read/write behavior and return value depending on direct_io
Also add parallel direct write option for 6.2+ kernels.
2 years ago
Antonio SJ Musumeci
1c5b0f2f5f
Fix loading readonly / write once options from file
2 years ago
Antonio SJ Musumeci
486c5d3734
Add ability to set readahead of mergerfs and branches
2 years ago
Antonio SJ Musumeci
9effeb6869
Add "per-process" file caching feature
Allows chosing page caching based on process name.
2 years ago
Antonio SJ Musumeci
9adddfc66d
Add option to lazy umount target mount point
2 years ago
Antonio SJ Musumeci
a7113bb163
Allow setting of scheduling priority
2 years ago
Antonio SJ Musumeci
939eb3996a
Add option to wait for branches to become new mounts
branches-mount-timeout=UINT64 in seconds (default: 0)
2 years ago
Antonio SJ Musumeci
24423b8d2a
Add async message processing
2 years ago
Antonio SJ Musumeci
18dead4d86
Add new debug printing routines
4 years ago
Antonio SJ Musumeci
8adebc9489
new features: follow-symlinks, rename-exdev, link-exdev
* follow-symlinks: allows mergerfs to transparently follow symlinks
* link-exdev: in the event a link returns EXDEV create a symlink instead
* rename-exdev: in the event a rename returns EXDEV move the oldpath and
create a symlink for the newpath
5 years ago
Antonio SJ Musumeci
538467b86d
config: rework global config, remove rwlock, make branches RCU like
Also added unit tests. Should have done separately but found a number of bugs.
4 years ago
Antonio SJ Musumeci
15a0aedd25
cleanup: move some config data structures to separate files
5 years ago
Antonio SJ Musumeci
93218a343a
NFS open/creat hack
A hack to work around non-POSIX NFS <-> FUSE behavior where it turns
an open(O_EXCL|O_CREAT,0444) into multiple calls that results in
EACCES.
5 years ago
Antonio SJ Musumeci
08d267fc61
moveonenospc: enhance the feature to allow using a policy
Just like functions you can now set a policy for moveonfreenospc. This
allows for more flexibility.
For backwards compatibility moveonfreenospc=true is converted to
moveonfreenospc=mfs.
minfreespace does apply which is slightly different from original behavior.
5 years ago
Antonio SJ Musumeci
b4397f7f2e
add 'inodecalc' option to allow selection of inode calculation algo
5 years ago
Antonio SJ Musumeci
dbdd3e22fc
additional readdir refactor cleanup
Differences between readdir and getdents is minimal at best. Leaving code
for now to allow for possible expansion later.
5 years ago
Antonio SJ Musumeci
54c41c4994
rework config management
* Add standard way to do str2val and val2str conversion
* Add support for a config file
* Add support for reading and writing settings via ioctl
6 years ago
Antonio SJ Musumeci
d119807adb
restructure readdir, add readdir_plus
Does not enable READDIR_AUTO. Might add in the future.
6 years ago
Antonio SJ Musumeci
903d39f968
add writeback caching
5 years ago
Antonio SJ Musumeci
7cbd88ac81
allow setting of 'max_pages' (via 'fuse_msg_size')
Linux 4.20 and above allow setting the number of pages per FUSE message
upto 256 (4K * 256 = 1MiB). This can greatly increase read and write
speeds depending on the workload.
6 years ago
Antonio SJ Musumeci
529a953e30
add file caching across opens and runtime control
6 years ago
Antonio SJ Musumeci
ddf6a2f105
make async_read optional again
6 years ago
Antonio SJ Musumeci
2323c16316
add readdir caching
6 years ago
Antonio SJ Musumeci
1baa706d37
add symlink caching
6 years ago
Antonio SJ Musumeci
80d56ac94e
add support for POSIX ACLs
6 years ago
Antonio SJ Musumeci
e052446713
fix setting of fsname
6 years ago
Antonio SJ Musumeci
9d9ee7b71d
general code cleanup
6 years ago
Antonio SJ Musumeci
7a057daa0c
add policy cache for 'open'
A fusepath -> basepath cache for `open` to limit the overhead of FUSE in 'open, read/write, close' patterns (such as Transmission).
6 years ago
Antonio SJ Musumeci
680f8194f9
add ability to change statfs behavior
7 years ago
Antonio SJ Musumeci
b55ebba4ed
add tagging branches RW/RO/NW
This allows users to tag a branch as readonly or not for writing regardless
of how the filesystem is mounted. Should simplify deployments and offer
more flexibility.
7 years ago
Antonio SJ Musumeci
65f482e483
add ability to turn on/off xattr support at runtime
7 years ago
Antonio SJ Musumeci
93f7d7d927
add link_cow feature
When enabled if a regular file is opened which has a link count > 1 it will
copy the file to a temporary file and rename over the original. Effectively
breaking the link. This behavior is similar to cow-shell and other LD_PRELOAD
based "CoW" solutions.
7 years ago
Antonio SJ Musumeci
f8563369bc
add security_capability option
7 years ago
Antonio SJ Musumeci
a7b126cb48
use pragma once in headers
8 years ago
Antonio SJ Musumeci
a2bddec8c7
add 'ignore path preserving on rename' feature
8 years ago
Antonio SJ Musumeci
87c2f2f9dc
add nullrw feature to facilitate benchmarking
8 years ago
Antonio SJ Musumeci
6a7675f2bf
symlinkify: file -> symlink-to-original-file after timeout
8 years ago
Antonio SJ Musumeci
162b99e6b8
enable nopath and nullpath_ok
8 years ago
Antonio SJ Musumeci
6aa62d03ff
add option to drop file caches before closing files
8 years ago
Antonio SJ Musumeci
1aa76a54c2
use different read and write functions when using direct_io
9 years ago