diff options
author | Benjamin Fleischer <fleiben@gmail.com> | 2017-07-07 23:30:14 +0200 |
---|---|---|
committer | Nikolaus Rath <Nikolaus@rath.org> | 2017-07-13 16:06:05 +0200 |
commit | db149d1d874ccf044f3ed8d8f980452506b8fb4b (patch) | |
tree | 6c579c7472e70d66646c93e5b41e9c4a98272458 | |
parent | 861d308a03319e23286290ee8cffc6fd307e0ec9 (diff) | |
download | sshfs-db149d1d874ccf044f3ed8d8f980452506b8fb4b.tar sshfs-db149d1d874ccf044f3ed8d8f980452506b8fb4b.tar.gz sshfs-db149d1d874ccf044f3ed8d8f980452506b8fb4b.tar.bz2 sshfs-db149d1d874ccf044f3ed8d8f980452506b8fb4b.zip |
Fall back to global I/O size on macOS
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
-rw-r--r-- | sshfs.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -3150,6 +3150,9 @@ static int sshfs_getattr(const char *path, struct stat *stbuf, } if (!err) { err = buf_get_attrs(&outbuf, stbuf, NULL); +#ifdef __APPLE__ + stbuf->st_blksize = 0; +#endif buf_free(&outbuf); } buf_free(&buf); |