• T
    NFS: Don't report ENOSPC write errors twice · e6005436
    Trond Myklebust 提交于
    Any errors reported by the write() system call need to be cleared from
    the file descriptor's error tracking. The current call to nfs_wb_all()
    causes the error to be reported, but since it doesn't call
    file_check_and_advance_wb_err(), we can end up reporting the same error
    a second time when the application calls fsync().
    
    Note that since Linux 4.13, the rule is that EIO may be reported for
    write(), but it must be reported by a subsequent fsync(), so let's just
    drop reporting it in write.
    
    The check for nfs_ctx_key_to_expire() is just a duplicate to the one
    already in nfs_write_end(), so let's drop that too.
    Reported-by: NChenXiaoSong <chenxiaosong2@huawei.com>
    Fixes: ce368536 ("nfs: nfs_file_write() should check for writeback errors")
    Signed-off-by: NTrond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
    e6005436
file.c 22.1 KB