NFS: Do not report flush errors in nfs_write_end()
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Sat, 14 May 2022 14:27:03 +0000 (10:27 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Tue, 17 May 2022 16:01:59 +0000 (12:01 -0400)
If we do flush cached writebacks in nfs_write_end() due to the imminent
expiration of an RPCSEC_GSS session, then we should defer reporting any
resulting errors until the calls to file_check_and_advance_wb_err() in
nfs_file_write() and nfs_file_fsync().

Fixes: 6fbda89b257f ("NFS: Replace custom error reporting mechanism with generic one")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/file.c

index 87e4cd5e8fe28b23c662c4e164ffcb331891f112..3f17748eaf290b97c181856cf2dbd723cf840fef 100644 (file)
@@ -386,11 +386,8 @@ static int nfs_write_end(struct file *file, struct address_space *mapping,
                return status;
        NFS_I(mapping->host)->write_io += copied;
 
-       if (nfs_ctx_key_to_expire(ctx, mapping->host)) {
-               status = nfs_wb_all(mapping->host);
-               if (status < 0)
-                       return status;
-       }
+       if (nfs_ctx_key_to_expire(ctx, mapping->host))
+               nfs_wb_all(mapping->host);
 
        return copied;
 }