Antonio SJ Musumeci
0371b047f9
change from fasthash64 to wyhash
wyhash has very good performance for small keys (our usecase) and
works on platforms with alignment concerns.
A user had an issue where fasthash64 lead to misaligned reads and
signal exceptions. wyhash does not have such issues and is faster.
4 years ago
Antonio SJ Musumeci
30d13b7f77
inodecalc: add 32bit versions of hashs
4 years ago
Antonio SJ Musumeci
5989d41a86
readdir: use getdents64 for compatibility with ARM64
4 years ago
Antonio SJ Musumeci
0709b2e447
add missing options to usage
4 years ago
Antonio SJ Musumeci
15a0aedd25
cleanup: move some config data structures to separate files
4 years ago
Antonio SJ Musumeci
a93bd9f7fa
freebsd: misc cleanups to get freebsd compiling
4 years ago
Antonio SJ Musumeci
139e61efaa
nfsopenhack: remove empty file check
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
3ec137c4ad
policy: add "most shared path" policies
Like path preserving but walks back the path till a match is found. Should
cover the usecase where someone wants a "less strict" form of path
preservation.
4 years ago
Andrea Gelmini
3a6738475a
Fix typos
4 years ago
Andrea Gelmini
468d42088a
Removed duplicated include
4 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.
4 years ago
Antonio SJ Musumeci
c0990644e8
remove unnecessary libfuse flags nopath, nullpath_ok, and utime_omit_ok
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
698c4147fc
fix getdent name length calculation
5 years ago
Antonio SJ Musumeci
3a46ec9fab
fix filename hashing error
5 years ago
Antonio SJ Musumeci
9b2634a1e5
fix name length calculation for musc
5 years ago
Antonio SJ Musumeci
62873d2d3b
use getdents64 on linux
5 years ago
Antonio SJ Musumeci
d119807adb
restructure readdir, add readdir_plus
Does not enable READDIR_AUTO. Might add in the future.
5 years ago
Antonio SJ Musumeci
a646fe016d
change inode conversion algo to reduce collision
5 years ago
Antonio SJ Musumeci
576ff3694e
add cache.writeback to xattrs
5 years ago
Antonio SJ Musumeci
903d39f968
add writeback caching
5 years ago
Antonio SJ Musumeci
4d82ed9324
fix short writes on >2GB files when cloning file
5 years ago
Antonio SJ Musumeci
0fffabfbe3
only return 1 branch for rand/eprand policies
5 years ago
Antonio SJ Musumeci
50ad648ce4
initialize mutex to fix lockup
5 years ago
Antonio SJ Musumeci
4c4c27a93e
set uid & gid when calling ioctl
Turns out certain ioctl calls check the effective user id (FS_IOC_SETFLAGS).
5 years ago
Antonio SJ Musumeci
5ca928e436
accept old arguments for backwards compatibility
6 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
8cb7195c3e
add copy_file_range support
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
61cded5b34
fix for unlink race condition
6 years ago
Antonio SJ Musumeci
5f2221155c
ensure parallel dirops is enabled if capable
6 years ago
Antonio SJ Musumeci
2b019b84b0
ensure async_aio is enabled if capable
6 years ago
Antonio SJ Musumeci
80d56ac94e
add support for POSIX ACLs
6 years ago
Antonio SJ Musumeci
1ca70521a4
remove 'remote' flock support
6 years ago
Antonio SJ Musumeci
e052446713
fix setting of fsname
6 years ago
Antonio SJ Musumeci
5883020784
tweak docs
6 years ago
Antonio SJ Musumeci
6ecc618d83
remove .fuse_hidden file creation
addresses #521
mergerfs is written using libfuse's high level API. The HLAPI forces a certain
behavior with regard to unlinking or rename overwriting of open files. It
renames the file to .fuse_hiddenXXXXXX and when incoming requests refer
to the unlinked file it will use path based calls and use that path.
This behavior leads to rmdirs failing or some software noticing
the .fuse_hidden files.
This patch changes the HLAPI and removes entirely the .fuse_hidden behavior.
See the README for more.
6 years ago
Antonio SJ Musumeci
2a075ead92
fall back to other file copy methods in clonefile
6 years ago
Antonio SJ Musumeci
b69819e4b2
ioctl: don't set outbufsz when not needed
6 years ago
Antonio SJ Musumeci
0918dfd117
make attr, entry, negative_entry cache timeouts runtime configurable
6 years ago
Antonio SJ Musumeci
95c0cc741d
replace libfuse's autoconf with makefile
6 years ago
Antonio SJ Musumeci
7bf607bb6b
fix FS_IOC_{GET,SET}{FLAGS,VERSION} ioctl calls
6 years ago
Antonio SJ Musumeci
940c323251
misc fixes for FreeBSD
6 years ago
Antonio SJ Musumeci
5ab7d2dd72
remove O_LARGEFILE
6 years ago