Age | Commit message (Collapse) | Author |
|
* Use logical not for booleans
Fixes a gcc 7.4.0 complaint:
sshfs.c:1743:28: warning: ‘~’ on a boolean expression [-Wbool-operation]
sshfs.c:1743:28: note: did you mean to use logical not?
* strdup argument to keep it alive after function return
Fixes gcc 7.4.0 complaint:
sshfs.c: In function ‘sshfs_opt_proc’:
sshfs.c:3488:50: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
|
|
|
|
|
|
Following-up on [1], there was another instance where blksize
was set to a non-zero value, thus making it impossible to
configure global I/O size on macOS, and using [2] the hard-wired
value of 4096 bytes instead, resulting in uniformly poor
performance [3].
With this patch, setting I/O size to a reasonable large value,
will result in much improved performance, e.g.:
-o iosize=1048576
[1] https://github.com/osxfuse/sshfs/commit/5c0dbfe3eb40100f9277e863926f2e7d7c9a5a4c
[2] https://github.com/libfuse/sshfs/blob/4c21d696e9d46bebae0a936e2aec72326c5954ea/sshfs.c#L812
[3] https://github.com/libfuse/sshfs/issues/11#issuecomment-339407557
|
|
The standard header for the poll(3) interface is poll.h[0]. This prevents
a warning when building with musl libc:
In file included from sshfs.c:44:
/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
#warning redirecting incorrect #include <sys/poll.h> to <poll.h>
^~~~~~~
[0] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/poll.h.html
|
|
|
|
When using the "ssh_command" option, commands with multiple spaces in a
row will not be properly parsed. Example:
Properly parsed:
ssh_command = "ssh -o IdentityFile=~/.ssh/id_rsa"
Improperly parsed:
ssh_command = "ssh -o IdentityFile=~/.ssh/id_rsa"
This commit changes the ssh_command parsing logic so that both of the
above examples are considered valid and properly handled.
Fixes: #114.
|
|
|
|
The current definition of the clean_req() function produces a compiler
warning as it expects 2 parameters but GHRFunc expects 3. This commit
resolves issue #157.
|
|
The manpage says that -o idmap=user maps the UID and GID, but it
apparently only mapped the UID. The code was in place to map the GID as
well, but it was hidden behind #ifdef __APPLE__. This commit removes
those #ifdefs, and in a couple of cases the code inside an #else, to
make the option behave as documented.
|
|
|
|
|
|
Fuse operations expect negated errno values.
|
|
In libfuse<3, when `fstat_workaround` was true, that meant to always
use the `path` argument to resolve fgetattr instead of the supplied
handle. Before this change, the logic was interpreting
`fstat_workaround` to not use the `path` argument when it was
true. This change reverts to the libfuse<3 behavior.
|
|
|
|
Add workaround to always pass a 0 mode when creating a file
This works around servers that produce an error for any non-zero mode.
|
|
sshfs.rst: update the documentation.
|
|
|
|
Fixes: #96.
|
|
As of kernel 4.14, the FUSE module's + writeback implementation is not
compatible with network filesystems, and there are no imminent plans
to change that.
For more details, see
https://marc.info/?l=fuse-devel&m=150592103107662&w=2 or
As a consequence, the -o unreliable_append option has become obsolete
as well.
Fixes: #93
Fixes: #88
Fixes: #81
|
|
Fixes: #72.
|
|
Fixes: #76.
|
|
|
|
Writeback cache seems to cause dataloss in some situations.
We need to investigate this first.
See https://github.com/libfuse/sshfs/issues/72.
|
|
|
|
It is not clear what this check is supposed to achieve, and it seems to
fail in some situations (cf issue #57).
Fixes: #57.
|
|
Fixes: #73.
|
|
The st_blksize value of struct stat represents the optimal block size
for file I/O operations. FUSE for macOS will use this value when
preforming read or write operations on the file. The smaller st_blksize
is the more context switches are required to complete the operation.
Setting st_blksize to 0 results in FUSE for macOS falling back to the
global I/O size, that can be specified through the "-o iosize=..."
mount-time option.
Fixes osxfuse/osxfuse#389 and osxfuse/sshfs#33
|
|
By default volumes are mounted under /Volumes on macOS. Since macOS
10.12 the /Volumes directory is root-owned. In order to allow non-
privileged users to mount FUSE volumes under /Volumes FUSE will create
non-existent mount points automatically.
Fixes osxfuse/sshfs#27
|
|
wrctr cannot be used without having been initialized,
but the compiler is too dumb to see that.
|
|
Fixes: #7
|
|
libfuse 3.0.0 is rather new and not widely used yet, so requiring
libfuse 3.1.0 right away shouldn't be a problem.
|
|
|
|
|
|
This re-enables support for nullpath_ok. The cache remains disabled.
|
|
This commit enables the use of readdir() instead of getdir(). It also
completely disables the cache and the nullpath_ok feature. This will
be fixed in the next commits.
|
|
|
|
This is in preparation for the move to libfuse 3.0
|
|
This should never be used. We may add new workarounds in the future,
and they should only be enabled explicitly when needed.
|
|
|
|
The same effect (enabling NODELAY on the server side *and* enabling
X11 forwarding) can be achieved by explicitly passing `-o ForwardX11`
|
|
No longer required since glib 2.32.
|
|
|
|
This was a performance improvement for SSH versions prior to
4.4. There is no reason to continue to support this.
|
|
Otherwise, aborting the password prompt with Ctrl+C will
also kill the sshfs process and leave the mountpoint inaccessible.
Fixes: #9.
|
|
|
|
Port SSHFS to Cygwin
|
|
It is unclear why G_SLICE_CONFIG_ALWAYS_MALLOC has been set before but
doing so with the latest version of GLib (2.46.2) results in the
following warning:
GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0'
failed
This fixes issue osxfuse/sshfs#17
|
|
|
|
Commit 74bfa3850a2568f96dd1d090a9386534c9bb4629 allowed sshfs to run
without requiring a non-NULL path argument for certain
operations. This was erroneous in the case of using certain
workarounds.
|