Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
Asynchronous direct I/O is supported by linux kernels 3.13 and
later, writeback caching is supported by 3.14 and later.
|
|
Reported-by: Michael j Theall
|
|
|
|
Advertize the existence of env vars MOUNT_FUSE_PATH, UDEV_RULES_PATH
and INIT_D_PATH in the execution of ./configure.
|
|
|
|
to fix a warning issued by automake 1.14.
|
|
|
|
This allows compiling fuse with musl.
|
|
Valgrind warns on close(-1). So don't do this (happens if fuse_chan_clearfd()
was called on the channel).
|
|
|
|
|
|
Distribute ulockmgr separately. It is not needed for the building of
libfuse, only fusexmp_fh. Check ulockmgr library in ./configure and if not
disable remote-lock suport in fusexmp_fh.
|
|
Allow 2.X and 3.X to coexist. Includes are now stored under
/usr/include/fuse3 and library is named libfuse3.*. Invoke pkg-config with
"fuse3" as the first argument to build with version 3 of the library.
|
|
We do need a C99 compiler
|
|
add AC_SYS_LARGEFILE to your configure.ac instead.
|
|
Remove 'fh_old' which was an ABI compatibility field for a long time.
Make 'writepage' a bitfield.
|
|
|
|
|
|
|
|
|
|
This prevents a valgrind warning.
|
|
- fuse_kern_unmount closes handle (e.g. 19)
- a thread in my process opens a file - the OS assigns newly freed
handle (i.e. 19)
- fuse_kern_chan_destroy closes the same handle (i.e. 19)
- a thread in my process opens another file - the OS assigns newly
freed handle (i.e. 19)
- * MAYHEM *
Reported by Dan Greenfield
|
|
There's actually just one type of channel and session, so we don't need the
generic callback functions.
|
|
Remove fuse_chan_bufsize() from the lowlevel API.
fuse_session_receive_buf() is now responsible for allocating memory for the
buffer.
|
|
Move the fuse_chan_ops.send and .receive implementations to fuse_lowlevel.c. The abstraction wasn't actually useful and made the the splice implementation more difficult.
Remove fuse_chan_ops.send and fuse_chan_ops.receive.
|
|
|
|
Clean up fuse_chan related interfaces. Remove the following from the
lowlevel library API:
struct fuse_chan_ops;
fuse_chan_new();
fuse_chan_session();
fuse_chan_recv();
fuse_chan_send();
|
|
Clean up fuse_session related interfaces. Remove the following from the
lowlevel library API:
struct fuse_session_ops;
fuse_session_new();
fuse_session_process();
fuse_session_data();
|
|
Replace fuse_session_next_chan() with fuse_session_chan(), as multiple
channels per session were never actually supported and probably never will.
|
|
- modified all examples to be included in doxygen
- modified the API documentation to have more details
- added the 490px_FUSE_structure.svg.png (c) wikipedia
|
|
- fuse_kern_unmount closes handle (e.g. 19)
- a thread in my process opens a file - the OS assigns newly freed
handle (i.e. 19)
- fuse_kern_chan_destroy closes the same handle (i.e. 19)
- a thread in my process opens another file - the OS assigns newly
freed handle (i.e. 19)
- * MAYHEM *
Reported by Dan Greenfield
|
|
|
|
Returning entry in readdir does not result in bump of lookup count.
Returning entry in readdirplus DOES result in increase of lookup count by
1. You need to provide valid nodeid and valid stat structure (with at least
valid type) for each entry.
|
|
Check for __KERNEL__ instead of __linux__ and use the standard int
types instead of the linux specific ones.
|
|
|
|
Exiting a worker my race with cancelling that same worker. This caused a
segmenation fault.
Reported and tested by Anatol Pomozov
|
|
|
|
|
|
|
|
|
|
FUSE_CFLAGS defines -D_FILE_OFFSET_BITS=64. There are three problems
with this:
(1) A larger program using libfuse might have modules compiled with
and without FUSE_CFLAGS, which, if LFS is not enabled and the platform
is 32 bit, would result in a fatal mix of 32 and 64 bit off_t. (This
would, of course, be a bug, but I think there is a better way to
detect this -- see below)
(2) Programs may need to be adjusted to support LFS. It's the
intention of the LFS standard that the _programmer_ enables LFS once
the program has been checked/adjusted.
(3) _FILE_OFFSET_BITS does not need to be defined at all on 64 bit
Linux. 64 bit off_t is the default there.
So I think it's better not to force -D_FILE_OFFSET_BITS=64, and
because of (3) I also think you shouldn't test for it.
However off_t must still be 64 bits, so how to enforce that? C1X will
define static assertions[1], and these can be used to check the size
of off_t.
Not all compilers support static assertions yet, although several do.
Therefore I have surrounded the static assertion with a conservative
check that the compiler is GCC >= 4.6. In the long run, this test can
be removed and you can just use 'static_assert'.
|
|
|
|
|
|
Change the type of fuse_ino_t from 'unsigned long' to 'uint64_t'. This only
changes the size on 32bit architectures.
|
|
for consistency.
Reported by Vladimir Rutsky
|
|
when storing a newly allocated string for format "%s", free the previous value
stored at that location.
Reported by Marco Schuster
|
|
|
|
|