1
linux/fs
Miklos Szeredi 9cd6845511 [PATCH] fuse: fix async read for legacy filesystems
While asynchronous reads mean a performance improvement in most cases, if
the filesystem assumed that reads are synchronous, then async reads may
degrade performance (filesystem may receive reads out of order, which can
confuse it's own readahead logic).

With sshfs a 1.5 to 4 times slowdown can be measured.

There's also a need for userspace filesystems to know whether asynchronous
reads are supported by the kernel or not.

To achive these, negotiate in the INIT request whether async reads will be
used and the maximum readahead value.  Update interface version to 7.6

If userspace uses a version earlier than 7.6, then disable async reads, and
set maximum readahead value to the maximum read size, as done in previous
versions.

Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-01 08:53:09 -08:00
..
9p [PATCH] v9fs: add readpage support 2006-01-18 19:20:22 -08:00
adfs [PATCH] changing CONFIG_LOCALVERSION rebuilds too much, for no good reason 2005-11-09 07:55:57 -08:00
affs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
afs add loglevel to printk in fs/afs/cmservice.c 2006-01-11 01:52:40 +01:00
autofs [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
autofs4 [PATCH] autofs4 oops fix 2006-01-14 18:25:19 -08:00
befs remove unused fs/befs/attribute.c 2005-11-08 16:54:53 +01:00
bfs [PATCH] bfs iget() abuses 2005-10-04 13:22:01 -07:00
cifs [CIFS] Fix oops in cifs_readpages caused by not checking buf_type in an 2006-01-18 14:20:39 -08:00
coda [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
configfs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
cramfs
debugfs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
devfs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
devpts [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
efs return statement cleanup - kill pointless parentheses 2006-01-15 02:37:08 +01:00
exportfs [PATCH] exportfs: add find_acceptable_alias helper 2006-01-18 19:20:28 -08:00
ext2 [PATCH] ext2: remove d_splice_alias NULL check from ext2_lookup 2006-01-14 18:27:10 -08:00
ext3 [PATCH] ext3: remove d_splice_alias NULL check from ext3_lookup 2006-01-14 18:27:10 -08:00
fat [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
freevxfs [PATCH] fix possible PAGE_CACHE_SHIFT overflows 2006-01-08 20:13:54 -08:00
fuse [PATCH] fuse: fix async read for legacy filesystems 2006-02-01 08:53:09 -08:00
hfs [PATCH] hfs: cleanup HFS prints 2006-01-18 19:20:23 -08:00
hfsplus [PATCH] hfs: set type/creator for symlinks 2006-01-18 19:20:23 -08:00
hostfs [PATCH] uml: hostfs - fix possible PAGE_CACHE_SHIFT overflows 2005-12-29 09:48:15 -08:00
hpfs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
hppfs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
hugetlbfs [PATCH] Add tmpfs options for memory placement policies 2006-01-14 18:27:07 -08:00
isofs [PATCH] isofs: remove d_splice_alias NULL check from isofs_lookup 2006-01-14 18:27:12 -08:00
jbd [PATCH] jbd: remove_transaction fix 2006-01-18 19:20:16 -08:00
jffs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
jffs2 [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
jfs [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
lockd [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
minix
msdos [PATCH] fat: remove the unneeded vfat_find() in vfat_rename() 2005-10-30 17:37:32 -08:00
ncpfs [PATCH] ncpfs: remove kmalloc wrapper 2006-01-14 18:27:12 -08:00
nfs [PATCH] per-mountpoint noatime/nodiratime 2006-01-10 08:01:34 -08:00
nfs_common [PATCH] nfsacl: Solaris VxFS compatibility fix 2005-10-11 09:46:54 -07:00
nfsd [PATCH] knfsd: Restore recently broken ACL functionality to NFS server 2006-02-01 08:53:09 -08:00
nls
ntfs [PATCH] ntfs: remove superflous MS_NOATIME/MS_NODIRATIME assignments 2006-01-10 08:01:33 -08:00
ocfs2 [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
openpromfs [PATCH] kfree cleanup: fs 2005-11-07 07:54:06 -08:00
partitions [PATCH] partitions: Read Rio Karma partition table 2006-01-16 23:15:29 -08:00
proc [PATCH] convert /proc/devices to use seq_file interface 2006-01-14 18:25:19 -08:00
qnx4 fs/qnx4/bitmap.c: #if 0 qnx4_new_block() 2006-01-03 13:21:37 +01:00
ramfs [PATCH] NOMMU: Provide shared-writable mmap support on ramfs 2006-01-06 08:33:32 -08:00
reiserfs [PATCH] reiserfs: remove d_splice_alias NULL check from reiserfs_lookup 2006-01-14 18:27:12 -08:00
relayfs [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
romfs [PATCH] fix possible PAGE_CACHE_SHIFT overflows 2006-01-08 20:13:54 -08:00
smbfs [PATCH] smbfs readdir vs signal fix 2006-02-01 08:53:09 -08:00
sysfs [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
sysv correct email address of Manfred Spraul 2006-01-15 02:43:54 +01:00
udf [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
ufs [PATCH] ufs cleanup 2006-01-14 10:27:32 -08:00
vfat [PATCH] fat: remove the unneeded vfat_find() in vfat_rename() 2005-10-30 17:37:32 -08:00
xfs [XFS] Fix regression in xfs_buf_rele dealing with non-hashed buffers, as 2006-02-01 12:14:52 +11:00
aio.c [PATCH] rcu file: use atomic primitives 2006-01-08 20:13:48 -08:00
attr.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
bad_inode.c
binfmt_aout.c [PATCH] dump_thread() cleanup 2006-01-10 08:01:25 -08:00
binfmt_elf_fdpic.c [PATCH] fs/binfmt_elf: Remove unneeded kmalloc() return value casts 2006-01-10 08:02:01 -08:00
binfmt_elf.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
binfmt_em86.c
binfmt_flat.c [PATCH] uclinux: delay binfmt_flat trace 2006-01-10 09:31:27 -08:00
binfmt_misc.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
binfmt_script.c
binfmt_som.c [PATCH] mm: mm_init set_mm_counters 2005-10-29 21:40:38 -07:00
bio.c [BLOCK] A few kerneldoc fixups 2006-01-31 15:24:34 +01:00
block_dev.c [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
buffer.c Make alloc_page_buffers() initialise buffer_heads using init_buffer(), 2006-01-17 09:02:07 +11:00
char_dev.c [PATCH] convert /proc/devices to use seq_file interface 2006-01-14 18:25:19 -08:00
compat_ioctl.c [PATCH] Implement ioctl emulation for the parport character device 2006-01-12 09:08:49 -08:00
compat.c [PATCH] Fix regression added by ppoll/pselect code. 2006-01-19 22:11:31 -08:00
dcache.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
dcookies.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
direct-io.c [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
dnotify.c
dquot.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
drop_caches.c [PATCH] drop-pagecache 2006-01-08 20:12:40 -08:00
eventpoll.c [PATCH] epoll: handle timeout overflow 2005-09-28 07:46:41 -07:00
exec.c [PATCH] vfs: *at functions: core 2006-01-18 19:20:29 -08:00
fcntl.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
fifo.c [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
file_table.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
file.c [PATCH] Fix the fdtable freeing in the case of vmalloced fdset/arrays 2005-09-14 12:38:26 -07:00
filesystems.c [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
fs-writeback.c [PATCH] kernel-docs: fix kernel-doc format problems 2005-11-07 07:53:55 -08:00
inode.c [PATCH] per-mountpoint noatime/nodiratime 2006-01-10 08:01:34 -08:00
inotify.c [PATCH] add missing syscall declarations 2006-01-18 19:20:22 -08:00
ioctl.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
ioprio.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
Kconfig [PATCH] kexec: change CONFIG_PHYSICAL_START dependency 2006-01-10 08:01:29 -08:00
Kconfig.binfmt [PATCH] frv: suppress configuration of certain features for FRV 2006-01-08 20:13:36 -08:00
libfs.c [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
locks.c [PATCH] tiny: Uninline some fslocks.c functions 2006-01-08 20:14:10 -08:00
Makefile [PATCH] sanitize building of fs/compat_ioctl.c 2006-01-10 08:01:33 -08:00
mbcache.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
mpage.c [PATCH] fix possible PAGE_CACHE_SHIFT overflows 2006-01-08 20:13:54 -08:00
namei.c [PATCH] vfs: *at functions: core 2006-01-18 19:20:29 -08:00
namespace.c [PATCH] add /sys/fs 2006-01-16 23:15:29 -08:00
nfsctl.c [PATCH] EDAC: atomic scrub operations 2006-01-18 19:20:30 -08:00
open.c [PATCH] vfs: *at functions: core 2006-01-18 19:20:29 -08:00
pipe.c [PATCH] Unlinline a bunch of other functions 2006-01-14 18:27:06 -08:00
pnode.c [PATCH] shared mounts: cleanup 2006-01-08 20:13:56 -08:00
pnode.h [PATCH] unbindable mounts 2005-11-07 18:18:11 -08:00
posix_acl.c [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
quota_v1.c
quota_v2.c [PATCH] quota: make useless quota error message informative 2006-01-14 18:27:12 -08:00
quota.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
read_write.c [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
readdir.c [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem 2006-01-09 15:59:24 -08:00
select.c [PATCH] Add pselect/ppoll system call implementation 2006-01-18 19:20:30 -08:00
seq_file.c [PATCH] allow callers of seq_open do allocation themselves 2005-11-07 18:18:09 -08:00
stat.c [PATCH] vfs: *at functions: core 2006-01-18 19:20:29 -08:00
super.c [PATCH] mutex subsystem, semaphore to mutex: VFS, sb->s_lock 2006-01-09 15:59:25 -08:00
xattr_acl.c
xattr.c [PATCH] move xattr permission checks into the VFS 2006-01-10 08:01:29 -08:00