aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-01-14Released 2.5sshfs_2_5Miklos Szeredi
2014-01-08Implement asynchronous readdirAlexander Neumann
Accessing directories with many (several thousand) files over sshfs is slow, because most SFTP server implementations only send a fixed amount of entries per READDIR command (e.g. OpenSSH SFTP: 100 entries). This patch implements sending several READDIR commands in parallel, in order to speed up directory listing in these cases. An option (sync_readdir) is also added so that users can easily switch on the old behaviour. The performance improvement is astonishing. Accessing a directory with 30k files in from a remote server that has a RTT of 15ms via OpenSSH SFTP: Synchronous readdir: $ ./sshfs -o sync_readdir host:/tmp /mnt/temp $ time "ls" -1 /mnt/temp/test | wc -l 30000 "ls" -1 /mnt/temp/test 0.07s user 0.01s system 1% cpu 6.928 total Asynchronous readdir: $ ./sshfs host:/tmp /mnt/temp $ time "ls" -1 /mnt/temp/test | wc -l 30000 "ls" -1 /mnt/temp/test 0.07s user 0.01s system 12% cpu 0.605 total Accessing a directory with 100k files shows even more dramatic improvement: Synchronous readdir: $ ./sshfs -o sync_readdir host:/tmp /mnt/temp $ time "ls" -1 /mnt/temp/test2 | wc -l 100000 "ls" -1 /mnt/temp/test2 0.67s user 1.22s system 0% cpu 3:31.56 total Asynchronous readdir: $ ./sshfs host:/tmp /mnt/temp $ time "ls" -1 /mnt/temp/test2 | wc -l 100000 "ls" -1 /mnt/temp/test2 0.20s user 0.03s system 14% cpu 1.631 total This can easily be reproduced by creating a directory on a server and touching a lot of files in it: $ mkdir /tmp/test $ cd /tmp/test $ for i in $(seq 1 30000); do touch $i; done Signed-off-by: Alexander Neumann <alexander@bumpern.de>
2014-01-08Add -o disable_hardlink option (debian bug #670926)Miklos Szeredi
Reported by Louis-David Mitterrand
2014-01-07Map SSH2_FX_FAILURE to ENOTEMPTY for rmdirMiklos Szeredi
Reported by Ross Lagerwall
2013-04-11fix a typo in man pageMiklos Szeredi
2013-02-18fix missing newline in manual pageAlan Jenkins
2013-02-05Add FIXME for deadlock if $PATH contains mountpoint.Miklos Szeredi
Reported by Joachim Kopp
2012-05-14When checking root directory use LSTAT not STATMiklos Szeredi
This prevents I/O error being returned after a successful mount if a symlink is mounted. Reported by Bart Friederichs
2012-03-08Released 2.4sshfs_2_4Miklos Szeredi
2012-03-08make sure idmap files aren't writable by othersMike Kelly
otherwise, other local users could change the mapping, and gain access to things they shouldn't
2012-02-14Add slave option to run sftp over stdin and stdoutChris Wolfe
Add -o slave. This option routes the sftp communication over stdin and stdout, bypassing SSH and network.
2012-02-14Split fd into separate read and write pipesChris Wolfe
2012-02-08fix unused but set variablesMiklos Szeredi
cache.c: In function ‘cache_add_attr’: cache.c:167:9: warning: variable ‘now’ set but not used [-Wunused-but-set-variable] cache.c: In function ‘cache_add_dir’: cache.c:188:9: warning: variable ‘now’ set but not used [-Wunused-but-set-variable] cache.c: In function ‘cache_add_link’: cache.c:212:9: warning: variable ‘now’ set but not used [-Wunused-but-set-variable]
2012-02-08Remove some trailing whitespace.Chris Wolfe
Verified with `cat -vet` and `grep '\s$'`
2011-12-21skip blank linesMike Kelly
2011-12-21increase portabilityMike Kelly
getline() isn't widely available yet, use fgets() instead
2011-12-21fix typo in error messageMike Kelly
2011-12-21default to erroring if we can't remap a uid/gidMike Kelly
add a '-o nomap=ignore|error' option, which defaults to 'error'
2011-12-20Add -o idmap=file, -o uidmap=FILE, -o gidmap=FILEMike Kelly
These options allow you to create a pair of local files, with username:uid/groupname:gid pairs, one per line. Alternatively, files can be in standard /etc/passwd / /etc/group format. The uid/gids are for the remote server, their local counterparts are looked up with a local getpwnam/getgrnam call. Any stat() calls will show with the remapped local uid/gid, and any chown() calls will be remapped back to the remote uid/gid.
2011-12-20Fix a possible small memory leakMike Kelly
2011-12-20Fix typo in error messageMike Kelly
s/FD_CLOESEC/FD_CLOEXEC/
2011-12-20Fix error handling in sshfs_read_endMiklos Szeredi
Reported by Mike Kelly
2011-12-05Make chown respect the UID mapping policyMiklos Szeredi
Reported and tested by Vivenzio Pagliari
2011-11-16Submit max 32k reads and writes to the sftp serverMiklos Szeredi
Also don't limit the kernel to 64k reads and writes, rather split into 32k sized chunks and send them to the server all at once. This is more efficient and less demanding from the server. Reported by Ludovic Courtès. Fix suggested by Niels Möller
2011-11-14Add locking around modifver and connverMiklos Szeredi
2011-11-14Fix double free if reconnection races with request sendingMiklos Szeredi
Patch by E. Kuemmerle
2011-10-21Remove "-oPreferredAuthentications" from ssh optionsMiklos Szeredi
Remove "-oPreferredAuthentications" from ssh options if the "password_stdin" option is used. Reported by E. Kuemmerle
2011-09-23Add "FIXME: really needs LSETSTAT extension (debian Bug#640038)"Miklos Szeredi
2011-08-24sshfs: fstat workaroundPercy Jahn
Add "-oworkaround=fstat" for SFTP servers which don't support the FSTAT message.
2011-07-01Released 2.3sshfs_2_3Miklos Szeredi
2011-07-01Update COPYINGMiklos Szeredi
2011-07-01Add hard link operationMiklos Szeredi
Works if the server supports the "hardlink@openssh.com" protocol extension.
2011-03-25Fix possible deadlock on reconnectionMiklos Szeredi
Reported by Florian Zumbiehl
2011-01-25Fix cleanup when ssh connection is terminated.Miklos Szeredi
This prevents sshfs hanging when the server is rebooted, for example.
2010-04-28* Set FD_CLOEXEC on fuse device. This prevents deadlocks thatMiklos Szeredi
happen in some circumstances (bugzilla.kernel.org #12864).
2009-07-15* Check that the remote path specified refers to the same type ofMiklos Szeredi
file as the mountpoint, i.e. both are directories or both are non-directories (debian bug #535343). Reported by Greg Kochanski * Allow mounting a single non-directory from the server
2009-07-15tear down mount on connect failureMiklos Szeredi
2009-07-15Check mountpoint and fuse options before starting an sshMiklos Szeredi
session (debian bug #535333). This is only supported if compiled against libfuse-2.6 or later. Reported by Greg Kochanski
2009-07-15Add option 'delay_connect': This will always create the sshfs mount,Miklos Szeredi
even if the connection to the server can't be established.
2009-02-12* Print usage information and version to stdout, not stderr.Miklos Szeredi
Libfuse also needs to be fixed up. Reported by Kārlis Repsons
2008-10-20Released 2.2sshfs_2_2Miklos Szeredi
2008-10-20Escape commas in fsname option if libfuse supports itMiklos Szeredi
2008-10-08Fix harmless glib assertations with "cache=no"Miklos Szeredi
2008-10-08* Handle numerical IPv6 addresses enclosed in square brackets. Reported by ↵Miklos Szeredi
Andre-John Mas * Fix error if username contains a comma character. Reported by Yang Zhang
2008-07-11Released 2.1sshfs_2_1Miklos Szeredi
2008-06-24Add '-F' option to specify the ssh config fileMiklos Szeredi
2008-05-06Fix bug in caching which could cause file corruption for append mode writesMiklos Szeredi
2008-04-25man page update from BartoszMiklos Szeredi
2008-04-23Add manual pagesshfs_2_0Miklos Szeredi
2008-04-23Add manual pageMiklos Szeredi