Antonio SJ Musumeci
5263a65dcf
Remove usage printing regression in mount_bsd
2021-08-29 13:09:38 -04:00
Antonio SJ Musumeci
43a6d66e3c
Major cleanup of libfuse to remove unneeded features
...
* Remove request interrupt code. Required tracking of all requests unnecesssarily.
* Remove all debugging printing. Have plans to do full replacement.
* Remove deprecated functions.
* Remove unneeded error checking.
* Remove "userdata" which was unused.
* Remove allow_root feature.
2021-08-29 00:05:30 -04:00
Antonio SJ Musumeci
80f30999fa
properly initialize fuse_buf in worker loop
2021-06-20 17:38:17 -04:00
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
2021-02-11 23:24:08 -05:00
Antonio SJ Musumeci
3900543970
fix segv: zero out data structures
2020-12-13 13:40:04 -05:00
Antonio SJ Musumeci
1b26f4908e
general cleanup, slight memory reduction
2020-11-19 22:58:52 -05:00
Antonio SJ Musumeci
7e173108fd
libfuse cleanup: add more header include guards
2020-08-08 19:10:36 -04:00
Antonio SJ Musumeci
dc1b698847
libfuse cleanup: remove single threaded
2020-08-07 16:38:24 -04:00
Antonio SJ Musumeci
3c761b708b
libfuse cleanup: remove libfuse API compatibility
2020-08-07 16:38:24 -04:00
Antonio SJ Musumeci
3bfdd78434
libfuse cleanup: remove cuse
2020-08-07 16:38:24 -04:00
Antonio SJ Musumeci
5f12fb6a5f
libfuse cleanup: remove unnecessary files
2020-08-07 16:38:24 -04:00
Antonio SJ Musumeci
f9b831eb1a
libfuse cleanup: reindent
2020-08-07 16:38:24 -04:00
Antonio SJ Musumeci
5989d41a86
readdir: use getdents64 for compatibility with ARM64
2020-08-02 18:43:09 -04:00
Antonio SJ Musumeci
c4a85f5fad
readdir: add dirent index array
...
This removes the risk of corrupted data being sent back to the kernel
should it use the offset from one opendir-readdir in another. In this case
it would at most skip dirents.
According to the standards the offset is only valid when used within
the opendir -> releasedir but NFS uses offsets across independent
calls.
2020-07-12 12:43:33 -04:00
Antonio SJ Musumeci
c0990644e8
remove unnecessary libfuse flags nopath, nullpath_ok, and utime_omit_ok
2020-07-08 19:25:23 -04:00
Antonio SJ Musumeci
62899565e6
temporary fix for short readdirs on NFS
2020-07-08 14:10:53 -04:00
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.
2020-06-27 23:17:21 -04:00
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
2020-06-18 18:54:25 -04:00
Antonio SJ Musumeci
698c4147fc
fix getdent name length calculation
2020-03-12 23:45:20 -04:00
Antonio SJ Musumeci
9b2634a1e5
fix name length calculation for musc
2020-02-29 17:15:29 -05:00
Antonio SJ Musumeci
62873d2d3b
use getdents64 on linux
2020-02-28 20:34:12 -05:00
Antonio SJ Musumeci
d119807adb
restructure readdir, add readdir_plus
...
Does not enable READDIR_AUTO. Might add in the future.
2020-02-22 19:45:52 -05:00
Antonio SJ Musumeci
5ce428ca59
rework makefiles + install mount tools
2020-02-21 12:33:00 -05:00
trapexit
4cb866cee9
Merge pull request #707 from trapexit/writeback-cache
...
add writeback caching
2020-02-10 19:22:44 -05:00
Antonio SJ Musumeci
4b9f3de814
add ctime support
2020-02-10 18:39:15 -05:00
Antonio SJ Musumeci
903d39f968
add writeback caching
2020-02-09 21:08:53 -05:00
Antonio SJ Musumeci
08e1bef5a9
improve nodeid generation
...
* Change fuse_ino_t to uint64_t
* Change id generation to 64bit
* Randomize generation value (should help with NFS)
2019-09-30 23:28:45 -04:00
Antonio SJ Musumeci
50ad648ce4
initialize mutex to fix lockup
2019-09-07 14:10:36 -04:00
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.
2019-06-03 21:01:19 -04:00
Antonio SJ Musumeci
8cb7195c3e
add copy_file_range support
2019-06-03 07:12:05 -04:00
Antonio SJ Musumeci
529a953e30
add file caching across opens and runtime control
2019-05-30 00:10:08 -04:00
Antonio SJ Musumeci
ddf6a2f105
make async_read optional again
2019-05-28 15:57:50 -04:00
Antonio SJ Musumeci
2323c16316
add readdir caching
2019-05-23 22:11:33 -04:00
Antonio SJ Musumeci
1baa706d37
add symlink caching
2019-05-22 19:25:38 -04:00
Antonio SJ Musumeci
61cded5b34
fix for unlink race condition
2019-05-21 22:57:02 -04:00
Antonio SJ Musumeci
5f2221155c
ensure parallel dirops is enabled if capable
2019-05-20 00:36:42 -04:00
Antonio SJ Musumeci
2b019b84b0
ensure async_aio is enabled if capable
2019-05-20 00:18:56 -04:00
Antonio SJ Musumeci
3a66a68edb
ensure marking open files renamed over as hidden
2019-05-19 23:25:46 -04:00
Antonio SJ Musumeci
80d56ac94e
add support for POSIX ACLs
2019-05-19 18:17:55 -04:00
Antonio SJ Musumeci
c21aa34221
fix renaming over open unlinked file
2019-05-16 14:40:30 -04:00
Antonio SJ Musumeci
df0d0552b2
fix outarg size calculation to accomidate newer fuse_kernel.h on older platforms
2019-04-16 22:13:32 -04:00
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.
2019-04-13 21:41:51 -04:00
Antonio SJ Musumeci
b69819e4b2
ioctl: don't set outbufsz when not needed
2019-03-20 10:18:55 -04:00
Antonio SJ Musumeci
0918dfd117
make attr, entry, negative_entry cache timeouts runtime configurable
2019-02-23 01:03:20 -05:00
Antonio SJ Musumeci
95c0cc741d
replace libfuse's autoconf with makefile
2019-02-18 21:36:32 -05:00
Antonio SJ Musumeci
7bf607bb6b
fix FS_IOC_{GET,SET}{FLAGS,VERSION} ioctl calls
2019-02-17 11:48:19 -05:00
Antonio SJ Musumeci
65d3bfe84d
remove libfuse modules
2019-02-03 19:49:11 -05:00
Antonio SJ Musumeci
87b2795f2b
set direct_io per open/create, now runtime configurable
2019-01-11 15:23:14 -05:00
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.
2018-08-19 21:04:35 +03:00
Antonio SJ Musumeci
75ed37a11a
add setting of thread pool size
2017-07-02 23:50:39 -04:00
Antonio SJ Musumeci
8043829815
fixed threads
2017-07-01 23:29:47 -04:00
Antonio SJ Musumeci
de0985c135
add libfuse 2.9.7 to repo and build against libfuse.a
2017-06-02 11:25:25 -04:00