| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
For example, FreeBSD doesn't have it.
Fixes: #173.
|
|
|
|
| |
Fixes: #160.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently libfuse has a hardcoded buffer limit to 128kib, while fuse
kernel module has a limit up to 32 pages.
This patch changes buffer limit to match the current page size, instead
of assuming 4096 bytes pages, enabling architectures with bigger pages
to use larger buffers, improving performance.
Also, add a new macro (HEADER_SIZE) to specify the space needed to
accommodate the header, making it easier to understand why those extra
4096 bytes are needed
Signed-off-by: Carlos Maiolino <cmaiolino-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
|
| |
|
| |
|
|
|
| |
Redundant copy when only op.read is available removed.
|
| |
|
|
|
|
|
|
|
| |
Apparently, NetBSD does not have /etc/mtab. Setting IGNORE_MTAB
in this case makes the code a little nicer.
See also https://github.com/libfuse/libfuse/pull/123
|
| |
|
| |
|
|
|
|
| |
documentation
|
| |
|
|
|
|
|
|
| |
-oallow_root is handled in userspace, and requires passing -oallow_other
to the kernel. This patch should make the code easier to understand and
avoid the confusion that gave rise to issue #86.
|
|
|
|
| |
Fixes #116.
|
|
|
|
| |
Fixes #117.
|
|
|
|
|
|
| |
Enabled by default since we haven't released libfuse 3.0 yet :-).
Fixes #112.
|
|
|
|
| |
Fixes #112.
|
|
|
|
| |
See also issue #114.
|
|
|
|
|
| |
Instead of abort()ing, close the session properly and return an
error code.
|
| |
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The fuse_session pointer is sometimes called f and at other times
se. The former is an artifact from the time when there still was a
separate struct fuse_ll object.
For consistency and to easy maintenance, this patch changes the name of
the fuse_session pointer to "se" wherever possible.
This patch was generated by the following Coccinelle script:
@@
symbol f, se;
@@
struct fuse_session *
-f
+se
;
<...
-f
+se
...>
@@
expression expr;
@@
struct fuse_session *
-f
+se
= expr;
<...
-f
+se
...>
@@
identifier fn;
@@
fn(...,struct fuse_session *
-f
+se
,...) { <...
-f
+se
...> }
Due to its complexity, the do_init() function had to be commented out
and then patched manually.
|
| |
|
|
|
|
| |
fi may be NULL, so we need to protect against this.
|
|
|
|
|
|
|
| |
This should help avoid people to accidentally put options
into argv[0].
Fixes #100.
|
|
|
|
|
|
| |
Modifying struct fuse_config in the init() handler is the canonical way
to adjust file-system implementation specific settings. There is no need
to have flags in struct fuse_operations.
|
|
|
|
|
|
| |
Several options (use_ino, etc) depend on the file system
implementation. Allowing them to be set from the command line makes no
sense.
|
| |
|
|
|
|
| |
This may not make sense for all options, but it's good practice.
|
|
|
|
|
|
|
| |
If fuse_session_mount() fails (or was never called in the first place)
we end up with the default fd value which happens to be 0. It hurts
long-running processes, which lifetime extends beyond session's
lifetime.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| | |
- Fixes commit d49f2e77b4.
- Fixes commit 199fc0f833.
- Thanks to Github user mtheall for the review!
|
| |
| |
| |
| |
| |
| | |
Fixes commit 3e022acf4076.
Thanks to Github user mtheall for the review!
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Both the BSD and Linux implementation actually accept mostly the same
FUSE-specific mount options. Up to now, the BSD help function appended
the output of ``mount_fusefs --help``, but looking at
http://www.unix.com/man-page/freebsd/8/mount_fusefs/ this is likely more
confusing than helpful (since the user is not actually invoking
mount_fusefs directly, most of the options don't make sense).
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
We now only list options that are potentially useful for an
end-user (and unlikely to accidentally break a file system). The full
list of FUSE options has been moved to the documentation of the
fuse_new() and fuse_session_new() functions.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We are overriding this setting with the flag in struct fuse_operations:
$ example/hello -f -d ~/tmp/mnt
FUSE library version: 3.0.0pre0
nopath: 0
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.25
flags=0x0007fffb
max_readahead=0x00020000
INIT: 7.23
flags=0x00006031
max_readahead=0x00020000
max_write=0x00020000
max_background=0
congestion_threshold=0
time_gran=0
unique: 1, success, outsize: 80
$ example/hello -f -d ~/tmp/mnt -o nopath
FUSE library version: 3.0.0pre0
nopath: 0
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.25
flags=0x0007fffb
max_readahead=0x00020000
INIT: 7.23
flags=0x00006031
max_readahead=0x00020000
max_write=0x00020000
max_background=0
congestion_threshold=0
time_gran=0
unique: 1, success, outsize: 80
|
| |
| |
| |
| |
| | |
This brings the default behavior in-line with that of the
regular `mount` command.
|
| |
| |
| |
| | |
This was only relevant for 2.4 kernels. Fixes #92.
|
| |
| |
| |
| |
| |
| | |
This obsoletes the ftruncate & fgetattr handlers.
Fixes #58.
|
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| |/
|/| |
|
| | |
|
| |
| |
| |
| |
| |
| | |
This option really affects the behavior of the session loop, not the
low-level interface. Therefore, it does not belong in the fuse_session
object.
|
| |
| |
| |
| |
| |
| |
| | |
The session options are used only once to determine the proper
conn->want flags. It is nice to have them clearly separated from the
other struct fuse_session members that are used throughout the life of
the file system.
|
| | |
|