aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)AuthorLines
2016-11-28Rename more things from fuse to fuse3Przemysław Pawełczyk-4/+4
2016-11-22Make handling of -oallow_root easier to understandNikolaus Rath-37/+20
-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.
2016-11-22Add support for FUSE_HANDLE_KILLPRIVNikolaus Rath-0/+3
Fixes #116.
2016-11-22Add support for FUSE_POSIX_ACLNikolaus Rath-0/+2
Fixes #117.
2016-11-22Added support for FUSE_PARALLEL_DIROPSNikolaus Rath-0/+3
Enabled by default since we haven't released libfuse 3.0 yet :-). Fixes #112.
2016-11-16Enable more capabilities by default, and document defaults.Nikolaus Rath-1/+11
Fixes #112.
2016-11-16Abort if fs requests capabilities not supported by kernel.Nikolaus Rath-0/+9
See also issue #114.
2016-11-16Fail more nicely on max_read mismatchNikolaus Rath-1/+4
Instead of abort()ing, close the session properly and return an error code.
2016-11-16Add support for more detailed error codes from main loopNikolaus Rath-1/+7
2016-10-28Clean-up doxygen documentationNikolaus Rath-2/+0
Fixes: #81.
2016-10-28Renamed fusermount / mount.fuse to fusermount3 / mount.fuse3Nikolaus Rath-1/+1
2016-10-27Add max_read to fuse_conn_infoNikolaus Rath-0/+23
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.
2016-10-25Use "se" instead of "f" for struct fuse_sessionNikolaus Rath-106/+106
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.
2016-10-24Added debug logging to chmodNikolaus Rath-1/+8
2016-10-24Fix segfault in debug logging codeNikolaus Rath-17/+32
fi may be NULL, so we need to protect against this.
2016-10-24fuse_session_new(): don't accept empty argv, check argv[0]Nikolaus Rath-1/+11
This should help avoid people to accidentally put options into argv[0]. Fixes #100.
2016-10-20Turn fuse_operations.nopath_flag into fuse_config.nullpath_okNikolaus Rath-9/+7
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.
2016-10-20fuse_new(): don't accept options that don't make sense for end-usersNikolaus Rath-6/+0
Several options (use_ino, etc) depend on the file system implementation. Allowing them to be set from the command line makes no sense.
2016-10-20Pass struct fuse_config to high-level init() handler.Nikolaus Rath-34/+10
2016-10-20Accept zero value for fuse_conn_info optionsNikolaus Rath-5/+15
This may not make sense for all options, but it's good practice.
2016-10-20Do not close stdout on fuse_session_destroy()Consus-1/+3
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.
2016-10-18Cast to void where we deliberately ignore return valuesNikolaus Rath-2/+2
2016-10-18Ignore some errorsMihail Konev-2/+2
2016-10-17Update linker scriptNikolaus Rath-2/+2
- Fixes commit d49f2e77b4. - Fixes commit 199fc0f833. - Thanks to Github user mtheall for the review!
2016-10-17fuse_session_new(): accept --debugNikolaus Rath-1/+1
Fixes commit 3e022acf4076. Thanks to Github user mtheall for the review!
2016-10-16Inlined fuse_mount_help() into fuse_lowlevel_help().Nikolaus Rath-21/+6
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).
2016-10-16fuse_session_new: accept -o debug as synonym for -dNikolaus Rath-0/+1
2016-10-15Make --help output more suitable for end-userNikolaus Rath-21/+16
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.
2016-10-15Removed -o nopath - it never did anythingNikolaus Rath-2/+0
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
2016-10-15Removed -o nonempty optionNikolaus Rath-47/+0
This brings the default behavior in-line with that of the regular `mount` command.
2016-10-15Drop -o large_read mount optionNikolaus Rath-3/+0
This was only relevant for 2.4 kernels. Fixes #92.
2016-10-15Pass fuse_file_info to getattr, chown, chmod, truncate, utimens handlersNikolaus Rath-158/+63
This obsoletes the ftruncate & fgetattr handlers. Fixes #58.
2016-10-15Unify handling of fuse_conn_info optionsNikolaus Rath-123/+127
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.
2016-10-15Merge branch 'fixup-lock-options'Nikolaus Rath-0/+3
2016-10-15Re-activated lost no_remote_*lock options.Nikolaus Rath-0/+3
2016-10-13do_init(): treat command line options consistentlyNikolaus Rath-47/+53
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.
2016-10-13Make -o clone_fd into a parameter of session_loop_mt().Nikolaus Rath-11/+12
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.
2016-10-13Move session options into sub-structNikolaus Rath-38/+40
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.
2016-10-13Use NULL for option processing function where possible.Nikolaus Rath-10/+1
2016-10-13Activate splice_read by default if write_buf is implemented.Nikolaus Rath-0/+1
2016-10-10Factored out LL_OPTIONS macroNikolaus Rath-34/+36
2016-10-10Removed 'async_read' field in fuse_conn_infoNikolaus Rath-8/+13
This is redundant with the capability flags in `wants` and `capable`.
2016-10-10Make several -o NN options work againNikolaus Rath-5/+5
In commit 2ed7af, we accidentally set the default values *after* parsing the command line arguments.
2016-10-10Use "se" instead of "f" for fuse_session pointer where possible.Nikolaus Rath-52/+53
These changes were generated with the following Coccinelle semantic patch: @@ symbol f, se; // avoid unneeded warnings from Coccinelle @@ struct fuse_session * -f +se ; <... -f +se ...> @@ identifier fn; @@ fn(...,struct fuse_session * -f +se ,...) { <... -f +se ...> }
2016-10-10fuse_main(): extend support for printing helpNikolaus Rath-0/+3
There's now a way to inhibit the "usage" line (which actually got lost in commit 225c12aebf2d), which makes it easier for simply file-systems to generate good-looking --help output.
2016-10-09fuse_main_real(): use fuse_parse_cmdline().Nikolaus Rath-11/+1
2016-10-09fuse_parse_cmdline(): do not print help/version textNikolaus Rath-35/+4
The current behavior makes it difficult to add help for additional options. With the change, this becomes a lot easier.
2016-10-09Added missing export of fuse_pkgversion.Nikolaus Rath-0/+1
2016-10-09Fix valgrind warningNikolaus Rath-0/+1
If we don't assign a value to padding, we get a warning about reading uninitialized data when sending the iovec to the kernel.
2016-10-08Removed ``-o big_writes`` optionNikolaus Rath-9/+4
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.