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
Antonio SJ Musumeci
9d9ee7b71d
general code cleanup
6 years ago
Antonio SJ Musumeci
c5b2415daf
remove `defaults`, hard code atomic_o_trunc, big_writes, and default_permissions
`defaults` is a value used by all filesystems and isn't passed through to
mergerfs when mounting via the fstab or the mount command. This led
to inconsistent application of options. atomic_o_trunc, big_writes, and
default_permissions should be enabled all the time anyway and splice_*
can lead to issues so they are not always enabled.
6 years ago
Antonio SJ Musumeci
5be7e007ce
add statfs cache
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
9fd3b968fc
make ioctl on directories use open policy
6 years ago
Antonio SJ Musumeci
87b2795f2b
set direct_io per open/create, now runtime configurable
6 years ago
Antonio SJ Musumeci
10f7f8bdea
optimize link_cow eligibility check
6 years ago
Antonio SJ Musumeci
dfa1c1ad6f
check minfreespace on newest policy create
6 years ago
Antonio SJ Musumeci
6ae68465cf
fix building on alpine w/ musl
6 years ago
Antonio SJ Musumeci
7d9458fdd1
change xattr setting notsup to nosys
6 years ago
Antonio SJ Musumeci
43b676a6e2
fix indexing of truncate targets
6 years ago
Antonio SJ Musumeci
c46134c03a
fix building on platforms without O_PATH
6 years ago
Antonio SJ Musumeci
3631ab7df2
optimize readdir file dedup
Use fasthash64 to hash filenames to uint64_t and store in khash
set. Significantly reduces malloc/free'ing and memory usage.
6 years ago
Antonio SJ Musumeci
680f8194f9
add ability to change statfs behavior
6 years ago
Antonio SJ Musumeci
7524e57262
rename NW (no write) to NC (no create)
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
9e0ab1f518
misc cleanups
6 years ago
Antonio SJ Musumeci
8a48b74cb4
policy return cleanup
6 years ago
Antonio SJ Musumeci
85026d5780
add FICLONE and copy_file_range to clonefile
If available FICLONE and copy_file_range will be tried in addition to sendfile
when copying data between two files. The fallback is a tradition read/write
loop. On systems that support these it should improve performance.
6 years ago
Antonio SJ Musumeci
1885a82cce
remove libattr dependency
6 years ago
Antonio SJ Musumeci
65f482e483
add ability to turn on/off xattr support at runtime
6 years ago
Antonio SJ Musumeci
8d1a1564bf
fix building on certain platforms
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
9afefef032
keep literal when glob fails
6 years ago
Antonio SJ Musumeci
f8563369bc
add security_capability option
6 years ago
Andrey Mazo
ec6adaa376
options: move "-o threads=" help text to libfuse/
Parsing of and acting upon "-o threads" option is done in the bundled `libfuse/`,
so move the corresponding help text there too.
This make help text consistent with behavior
when building against system libfuse,
which doesn't support this option.
6 years ago
Antonio SJ Musumeci
9830e29945
fix version generation
7 years ago
Antonio SJ Musumeci
cfe9c28a10
ignore clonepath metadata errors. fixes #470
7 years ago
Antonio SJ Musumeci
f48c16d162
stop clonepath at base directory. fixes #467
7 years ago
Antonio SJ Musumeci
1d6d22727c
call 32bit versions of set/geteuid on 32bit platforms
7 years ago
Antonio SJ Musumeci
75ed37a11a
add setting of thread pool size
7 years ago
Antonio SJ Musumeci
0708110ec1
improve khash performance
7 years ago
Antonio SJ Musumeci
a7b126cb48
use pragma once in headers
7 years ago
Antonio SJ Musumeci
a2bddec8c7
add 'ignore path preserving on rename' feature
7 years ago
Antonio SJ Musumeci
aea2b40dda
use temp files (then rename) when moving files for moveonenospc
7 years ago
Antonio SJ Musumeci
bfd410def2
use fusepath from fileinfo. closes #417
8 years ago
Antonio SJ Musumeci
7296d3d90d
add time.h to fix compiling on some platforms
8 years ago
Antonio SJ Musumeci
de0985c135
add libfuse 2.9.7 to repo and build against libfuse.a
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
8ba3a08f40
make dropcacheonclose runtime configurable
8 years ago
Antonio SJ Musumeci
ccaa458739
better handle incomplete reads/writes in copying files
8 years ago
Antonio SJ Musumeci
162b99e6b8
enable nopath and nullpath_ok
8 years ago
Antonio SJ Musumeci
f15437c713
tweak movefile behavior
8 years ago
Antonio SJ Musumeci
2fbeb67dd9
hide fs::fadvise as it's not used directly
8 years ago
Antonio SJ Musumeci
8b976ab3c1
support older libfuse without utime_omit_ok flag
8 years ago