• Miklos Szeredi's avatar
    [PATCH] fuse: fix async read for legacy filesystems · 9cd68455
    Miklos Szeredi authored
    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: default avatarMiklos Szeredi <miklos@szeredi.hu>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    9cd68455
fuse_i.h 11.4 KB