• Chuck Lever's avatar
    nfs: stat(2) fails during cthon04 basic test5 on NFSv4.0 · 6b196875
    Chuck Lever authored
    When running the Connectathon basic tests against a Solaris NFS
    server over NFSv4.0, test5 reports that stat(2) returns a file size
    of zero instead of 1MB.
    
    On success, nfs_commit_inode() can return a positive result; see
    other call sites such as nfs_file_fsync_commit() and
    nfs_commit_unstable_pages().
    
    The call site recently added in nfs_wb_all() does not prevent that
    positive return value from leaking to its callers. If it leaks
    through nfs_sync_inode() back to nfs_getattr(), that causes stat(2)
    to return a positive return value to user space while also not
    filling in the passed-in struct stat.
    
    Additional clean up: the new logic in nfs_wb_all() is rewritten in
    bfields-normal form.
    
    Fixes: 5bb89b47 ("NFSv4.1/pnfs: Separate out metadata . . .")
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
    6b196875
write.c 52.8 KB