Commit Graph

1645 Commits

Author SHA1 Message Date
Mateusz Urbańczyk
917e72973d Fix typo in "passthrough" docstring (#229) 2018-01-15 20:45:54 +00:00
Josh Soref
a83cd72f64 Handle mount ... -o nofail (#221)
Accept (and ignore) nofail mount option
2017-12-01 19:18:49 +00:00
divinity76
f7c8b31a36 fix "Rath Consulting" link (#225) 2017-11-27 19:53:09 +00:00
Josh Soref
8157b4d9b9 Spelling (#223)
Fix spelling errors
2017-11-27 10:23:20 +00:00
Nikolaus Rath
ae2cb7bd98 Released 3.2.1 2017-11-14 20:48:15 +00:00
Nikolaus Rath
f335221e8e Updated professional support information. 2017-11-13 20:10:13 +00:00
Nikolaus Rath
8ec7fd92eb Backed out d92bf83
This change is bogus. fuse_module_factory_t is already a pointer
type. Additionally, if dlsym returns NULL, then you will be
dereferencing it causing a segfault. In my testing, a segfault will
happen even if dlsym returns successfully.

Thanks to Michael Theall for spotting!
2017-11-03 10:51:06 +00:00
Nikolaus Rath
16422eb03c Don't install manpages under *BSD
Were not installing the corresponding binaries either, since those
are provided by the BSD base system.
2017-10-20 09:20:39 +01:00
Nikolaus Rath
945ce7a9d4 Don't use Python mode for meson.build
Emacs now has a proper meson mode :-).
2017-10-20 09:19:16 +01:00
Joerg Thalheim
2a3929bbe0 make udevrulesdir configurable
on nixos we install fuse in its own hierarchy independent from systemd.
2017-10-20 08:42:30 +01:00
Sangwoo Moon
d92bf83c15 Adding pointer dereferencing after calling dlsym()
dlsym() resolves the location of the loaded symbol,
therefore dlsym() returns the type (fuse_module_factory_t *), not (fuse_module_factory_t).
Added pinter dereferencing to correctly refer the factory function.
2017-09-27 15:01:55 +01:00
Nikolaus Rath
77092d9581 fuse_lib_ioctl(): don't call memcpy with NULL argument
This was detected by using clang's undefined behavior sanitizer, but
didn't seem to cause problems in practice.
2017-09-25 10:34:07 +01:00
Nikolaus Rath
b1a743c8eb Link with -lrt to support ancient libc
Fixes: #207.
2017-09-25 10:23:38 +01:00
Nikolaus Rath
f750abb757 Removed unneccessary #include <config.h> from examples
Fixes: #208.
2017-09-25 10:17:11 +01:00
Nikolaus Rath
379ce42268 Automatically print list of contributors when generating tarball 2017-09-20 18:17:49 +01:00
Nikolaus Rath
c3a881735f Travis CI: Don't use deprecated environment
Travis support recommends to install specific pip
version to work around problems in new environment.
2017-09-20 12:38:35 +01:00
Nikolaus Rath
3b6a2a5eef Correctly define fusermount3 path. 2017-09-19 20:37:46 +01:00
Nikolaus Rath
8929982478 Make *_loop_mt() available in version 3.0 again
The old versions of these symbols were defined with version
tag FUSE_3.0, so this is what we have to use in the .symver
directive.
2017-09-19 20:33:26 +01:00
Nikolaus Rath
893e2d66c7 Fix versioned symbols in version script
According to "How to Write Shared Libraries" by Ulrich Drepper
(https://www.akkadia.org/drepper/dsohowto.pdf), the version script
should contain the exported name of the versioned symbol once in each
tag for which it has been defined by .symver.
2017-09-19 20:26:51 +01:00
Nikolaus Rath
f24673cc17 Don't use external symbol names in internal files
The fuse_session_loop_mt() and fuse_loop_mt() symbols are only visible
when linking against the shared object. The code in lib/, however, is
compiled *into* the shared object and should thus use the internal
names of these functions.

Surprisingly enough, the code still worked before - but only when link
time optimization was disabled.

Unfortunately, we still can't compile with LTO because it seems that
enabling LTO somehow makes the tagged symbols vanish.

Without lto, we have:

$ nm lib/libfuse3.so | grep fuse_new
0000000000011070 T fuse_new_30
0000000000010a00 t fuse_new_31
0000000000011070 T fuse_new@FUSE_3.0
0000000000010a00 T fuse_new@@FUSE_3.1

and with LTO:

$ nm lib/libfuse3.so | grep fuse_new
0000000000019a70 T fuse_new_30
0000000000019270 t fuse_new_31

See also issue #198.
2017-09-19 16:47:40 +01:00
Nikolaus Rath
da363c514b Include source code in documentation. 2017-09-17 09:39:47 +01:00
Nikolaus Rath
072100c26a make_release_tarball.sh: be less verbose 2017-09-17 09:35:52 +01:00
Nikolaus Rath
109ab4fa53 Added some documentation of fuse internals. 2017-09-17 09:35:43 +01:00
Nikolaus Rath
cfdca8c6a0 Released 3.2.0 2017-09-12 14:50:16 +01:00
Nikolaus Rath
1c5f6bd3d8 Add script to create release tarball. 2017-09-12 14:50:16 +01:00
Nikolaus Rath
d41f62ccbc Use "mkdir" instead of "md" in instructions.
Fixes: #205.
2017-09-12 14:01:04 +01:00
Nikolaus Rath
a6c7eab4cc fuse_kern_unmount(): close fd before calling umount
This is what the Linux version does, and it fixes a
timeout under FreeBSD when the kernel sends a FUSE_DESTROY
request that is never answered.
2017-09-11 11:19:06 +01:00
Nikolaus Rath
21b55a05a1 example/ioctl: build on FreeBSD, but add protocol check instead. 2017-08-25 10:48:09 +02:00
Nikolaus Rath
f66673663a do_init(): print missing capabilities if there are any. 2017-08-25 10:38:43 +02:00
Nikolaus Rath
48d0e99af3 Fix writeback capability check. 2017-08-25 09:49:23 +02:00
Nikolaus Rath
6b0d363b6a examples/{ioctl,null}: don't build under FreeBSD instead of skipping tests. 2017-08-25 09:46:50 +02:00
Nikolaus Rath
b29faad9db printcap: use temporary directory, not file
Mounting a file doesn't seem to work under FreeBSD.
2017-08-24 21:56:00 +02:00
Nikolaus Rath
4e3a30b6f5 Skip testing null and ioctl examples under FreeBSD.
This seems to be unsupported. However, me may also be
doing it wrong. I've asked on the freebsd-fs list for help.
2017-08-24 21:56:00 +02:00
Nikolaus Rath
00e6794c81 Removed unused import. 2017-08-24 21:56:00 +02:00
Nikolaus Rath
ad029c095c passthrough_ll: only active EXPORT_SUPPORT of supported by kernel. 2017-08-24 21:08:25 +02:00
Nikolaus Rath
53de0adb1a Don't use -o auto_unmount under FreeBSD. 2017-08-24 20:50:44 +02:00
Nikolaus Rath
30ead3a5cf Dropped support for building with autotools
It's just too much pain to keep it working.
2017-08-24 20:50:44 +02:00
Nikolaus Rath
937467b6a0 Use printcap() to control test execution
That way, we run only tests that are supported by the running kernel.
2017-08-24 17:19:07 +02:00
Nikolaus Rath
ead57767f7 Added testcase for examples/printcap 2017-08-24 17:19:07 +02:00
Joseph Dodge
f12d9686d4 Add idle_threads mount option. 2017-08-24 15:17:01 +02:00
Nikolaus Rath
fc83143867 Renamed notify_inval_inode_fh to invalidate_path
The previous name didn't make much sense.
2017-08-24 14:51:27 +02:00
Sławek Rudnicki
89f2bae00c Allow inode cache invalidation in high-level API
We re-introduce the functionality of invalidating the caches for an
inode specified by path by adding a new routine
fuse_invalidate_path. This is useful for network-based file systems
which use the high-level API, enabling them to notify the kernel about
external changes.

This is a revival of Miklos Szeredi's original code for the
fuse_invalidate routine.
2017-08-24 14:20:37 +02:00
Nikolaus Rath
4eed36910f Added examples/printcap 2017-08-23 23:39:27 +02:00
Nikolaus Rath
cdea3acc2b fuse_loop_mt(): on error, return errno rather than -1. 2017-08-23 23:38:20 +02:00
Nikolaus Rath
3e8954279e fuse_loop(): don't return non-zero if there was no error 2017-08-23 23:37:35 +02:00
Nikolaus Rath
84499b2eef Document and unify error codes of fuse_lowlevel_notify_* 2017-08-22 17:05:26 +02:00
Nikolaus Rath
f88a285cf2 Make passthrough_fh work under FreeBSD. 2017-08-22 14:00:44 +02:00
Nikolaus Rath
e71bb48557 Fix two compiler warnings. 2017-08-22 13:59:17 +02:00
Nikolaus Rath
1a73904e68 Document meaning of zero telldir() offset. 2017-08-22 13:45:41 +02:00
Nikolaus Rath
19eaea2e77 Allow building without iconv.
cfg.has('HAVE_ICONV') was always true.
2017-08-22 12:10:50 +02:00