Antonio SJ Musumeci
0ca5d6aad0
Add export-support option as possible workaround for NFS EIO issues
9 months ago
Antonio SJ Musumeci
f66fb7e2d4
Fix user.mergerfs.pid
1 year ago
Antonio SJ Musumeci
bd70928268
Set flush-on-close default to opened-for-write
1 year ago
Antonio SJ Musumeci
6aa6452d3e
Add flushonclose feature
1 year ago
Antonio SJ Musumeci
c92a10021e
Add readdir policies
1 year 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.
1 year ago
Antonio SJ Musumeci
c72997f298
Make srcmounts readonly
All tools only read from srcmounts and the current setup had a bug
which caused branch mode and minfreespace to be stripped when using
config file.
2 years ago
Antonio SJ Musumeci
0a64d74b4b
Change default read-thread-count from -1 to 0 as documented
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
3 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
4 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
fc3453932a
branches: add per branch minfreespace w/ original value as default
example: /mnt/disk0=RW,1G:/mnt/disk1=RW,2G
4 years ago
Antonio SJ Musumeci
2696079601
break fs.hpp up into separate files
4 years ago
Antonio SJ Musumeci
15a0aedd25
cleanup: move some config data structures to separate files
4 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.
4 years ago
Antonio SJ Musumeci
b4397f7f2e
add 'inodecalc' option to allow selection of inode calculation algo
4 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.
4 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
5 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
1baa706d37
add symlink caching
6 years ago
Antonio SJ Musumeci
80d56ac94e
add support for POSIX ACLs
6 years ago
Antonio SJ Musumeci
9d9ee7b71d
general code cleanup
6 years ago
Antonio SJ Musumeci
680f8194f9
add ability to change statfs behavior
6 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.
6 years ago
Antonio SJ Musumeci
65f482e483
add ability to turn on/off xattr support at runtime
6 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.
6 years ago
Antonio SJ Musumeci
f8563369bc
add security_capability option
6 years ago
Antonio SJ Musumeci
a2bddec8c7
add 'ignore path preserving on rename' feature
7 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
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
8 years ago
Antonio SJ Musumeci
7e423cd9ce
small tweaks to build on Debian kFreeBSD
8 years ago
Antonio SJ Musumeci
242af777be
move from MIT to ISC license. closes #194
9 years ago
Antonio SJ Musumeci
1c7de2d83e
fix minor integer casting issues
9 years ago
Antonio SJ Musumeci
53e3284b26
remove usage of UINT32_MAX macro
9 years ago
Antonio SJ Musumeci
5808ab7795
move on enospc when writing feature. closes #141
This feature mimics the standard mhddfs behavior but is more thorough.
If a write fails and the errno is set to ENOSPC then mergerfs will (if
the feature is enabled) attempt to move the file to the drive with
the most free space but only if it has enough room for the file plus
the amount to be written. If that transfer is successful it will then
unlink the original file and attempt the previously failed write again.
The copy includes copying the path and file including the acls, owners,
attributes, extended attributes, and timestamps.
9 years ago
Antonio SJ Musumeci
f130d07fd8
config get and struct naming cleanup
9 years ago