• David Shaw's avatar
    Short write in nfsd becomes a full write to the client · 31dec253
    David Shaw authored
    If a filesystem being written to via NFS returns a short write count
    (as opposed to an error) to nfsd, nfsd treats that as a success for
    the entire write, rather than the short count that actually succeeded.
    
    For example, given a 8192 byte write, if the underlying filesystem
    only writes 4096 bytes, nfsd will ack back to the nfs client that all
    8192 bytes were written.  The nfs client does have retry logic for
    short writes, but this is never called as the client is told the
    complete write succeeded.
    
    There are probably other ways it could happen, but in my case it
    happened with a fuse (filesystem in userspace) filesystem which can
    rather easily have a partial write.
    
    Here is a patch to properly return the short write count to the
    client.
    Signed-off-by: default avatarDavid Shaw <dshaw@jabberwocky.com>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
    31dec253
nfs3proc.c 18.1 KB