| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
The FUSE_CAP_ATOMIC_IO_TRUNC capability is enabled by default,
but we didn't update the open() documentation accordingly.
|
|
|
|
| |
documentation
|
| |
|
| |
|
|
|
|
| |
Fixes #116.
|
|
|
|
| |
Fixes #117.
|
|
|
|
|
|
| |
Enabled by default since we haven't released libfuse 3.0 yet :-).
Fixes #112.
|
|
|
|
| |
Fixes #95.
|
|
|
|
| |
Fixes #112.
|
|
|
|
|
|
| |
Fixes #96.
Thanks to Maxim Patlasov <mpatlasov@virtuozzo.com> for help!
|
| |
|
|
|
|
| |
Fixes #84.
|
|
|
|
| |
Fixes #107.
|
|
|
|
| |
Fixes #106.
|
|
|
|
| |
Fixes #97.
|
|
|
|
| |
Fixes: #81.
|
|
|
|
|
|
|
|
|
|
| |
Eventually, this setting should be negotiated in the filesystem's init()
handler (like e.g. max_write). However, this requires corresponding
changes in the FUSE kernel module. In preparation for this (and to allow
a transition period) we already allow (and require) filesystems to set
the value in the init() handler in addition to the mount option.
The end-goal is tracked in issue #91.
|
| |
|
| |
|
|
|
|
|
| |
Since FUSE 3 is breaking backwards compatibility, this really does
not matter.
|
|
|
|
|
|
| |
Instead of using command line options to modify struct fuse_conn_info
before and after calling the init() handler, we now give the file system
explicit control over this.
|
|
|
|
|
|
|
| |
Previously, some command line options would change the FUSE defaults
but leave the final value to the file systems `init` handler while
others would override any changes made by `init`. Now, command line
options do both: they modify the default, *and* take precedence.
|
|
|
|
| |
This is redundant with the capability flags in `wants` and `capable`.
|
|
|
|
|
|
| |
This option is obsolete and should always be enabled. File systems that
want to limit the size of write requests should use the
``-o max_write=<N>`` option instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Help and version messages can be generated using the new
fuse_lowlevel_help(), fuse_lowlevel_version(), fuse_mount_help(), and
fuse_mount_version() functions.
The fuse_parse_cmdline() function has been made more powerful
to do this automatically, and is now explicitly intended only
for low-level API users.
This is a code simplication patch. We don't have to parse for --help and
--version in quite as many places, and we no longer have a low-level
initialization function be responsible for the (super-high level) task
of printing a program usage message.
In the high-level API, we can now handle the command line parsing
earlier and avoid running other initialization code if we're just going
to abort later on.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The only struct fuse_chan that's accessible to the user application is
the "master" channel that is returned by fuse_mount and stored in struct
fuse_session.
When using the multi-threaded main loop with the "clone_fd" option, each
worker thread gets its own struct fuse_chan. However, none of these are
available to the user application, nor do they hold references to struct
fuse_session (the pointer is always null).
Therefore, any presence of struct fuse_chan can be removed
without loss of functionality by relying on struct fuse_session instead.
This reduces the number of API functions and removes a potential source
of confusion (since the new API no longer looks as if it might be
possible to add multiple channels to one session, or to share one
channel between multiple sessions).
Fixes issue #17.
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| | |
requirements (#29)
Remove leading _ on header guards to comply with reserved identifier requirements
|
|/
|
|
|
|
| |
Applied (whitespace-cleanup) to each file. Having whitespace changes
in the VCS is ugly, but it ensures that in the future committers
can run this function to *avoid* commiting any whitespace.
|
|
|
|
| |
Returns the full PACKAGE_VERSION string, per autoconf
|
| |
|
|
|
|
|
|
| |
This allows the filesystem to specify the time granularity it
supports when the kernel is responsible for updating times
("writeback_cache" option).
|
|
|
|
|
| |
Asynchronous direct I/O is supported by linux kernels 3.13 and
later, writeback caching is supported by 3.14 and later.
|
|
|
|
|
|
| |
Remove 'fh_old' which was an ABI compatibility field for a long time.
Make 'writepage' a bitfield.
|
| |
|
|
|
|
|
|
| |
- 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_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'.
|
|
|
|
|
|
|
|
|
|
|
| |
This switches the -o no_readdirplus option to a tristate
string: -o readdirplus=(yes|no|auto)
Telling the kernel to always use readdirplus is beneficial to
filesystems (e.g. GlusterFS) where the cost to perform readdir
and readdirplus are identical.
The default remains "auto" (if supported).
|
|
|
|
|
| |
Make requested poll events available to the filesystem. If the requested
eventsare not available, then this field is zero.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch implements readdirplus support in FUSE usersapce. It adds
a new fuse lowlevel operations fuse_lowleve_ops::readdir_plus,
corespoding mount options and helper functions to maintain buffer.
[From: Eric Wong <normalperson@yhbt.net>]
This makes our terminology consistent with NFS and
our kernel module, as well as reducing user/developer
confusion in the command-line.
Note: I'm keeping "fuse_add_direntry_plus" since that is
less standardized in its use than "readdirplus" for now.
Signed-off-by: Feng Shuo <steve.shuo.feng@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Several caching logic changes have been made on the kernel side
to better support network-based fuse filesystems. These include
kernel side mtime checking and read path cache revalidation. The
new caching logic is enabled through the FUSE_AUTO_INVAL_DATA
init flag. Export this to the user via the '[no_]auto_inval_data'
mount option.
Signed-off-by: Feng Shuo <steve.shuo.feng@gmail.com>
|
|
|
|
|
|
|
| |
Change the version numbers.
This is going to be a new major version of the library breaking backward
compatibility on the binary level as well as the source level.
|
|
|
|
| |
Reported by Antonio SJ Musumeci
|
|
|
|
|
|
|
|
|
|
| |
This fixes problems with emulating flock() with POSIX locking.
Reported by Sebastian Pipping.
As with lock/setlk/getlk most filesystems don't need to implement
this, as the kernel takes care of file locking. The only reason to
implement locking operations is for network filesystems which want
file locking to work between clients.
|
|
|
|
|
|
|
|
|
|
|
| |
...with the help of vim :set spell
modified: FAQ
modified: include/fuse.h
modified: include/fuse_common.h
modified: include/fuse_opt.h
modified: lib/fuse_kern_chan.c
modified: util/fusermount.c
|
| |
|
|
|
|
| |
Reported-by: Goswin von Brederlow <goswin-v-b@web.de>
|