Skip to content

Commit

Permalink
NFS: Do not report writeback errors in nfs_getattr()
Browse files Browse the repository at this point in the history
[ Upstream commit d19e018 ]

The result of the writeback, whether it is an ENOSPC or an EIO, or
anything else, does not inhibit the NFS client from reporting the
correct file timestamps.

Fixes: 79566ef ("NFS: Getattr doesn't require data sync semantics")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
Trond Myklebust authored and Greg Kroah-Hartman committed Feb 23, 2022
1 parent 98b398b commit 61b6286
Showing 1 changed file with 3 additions and 6 deletions.
9 changes: 3 additions & 6 deletions fs/nfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -661,11 +661,8 @@ int nfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)

trace_nfs_getattr_enter(inode);
/* Flush out writes to the server in order to update c/mtime. */
if (S_ISREG(inode->i_mode)) {
err = filemap_write_and_wait(inode->i_mapping);
if (err)
goto out;
}
if (S_ISREG(inode->i_mode))
filemap_write_and_wait(inode->i_mapping);

/*
* We may force a getattr if the user cares about atime.
Expand Down Expand Up @@ -693,7 +690,7 @@ int nfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
if (S_ISDIR(inode->i_mode))
stat->blksize = NFS_SERVER(inode)->dtsize;
}
out:

trace_nfs_getattr_exit(inode, err);
return err;
}
Expand Down

0 comments on commit 61b6286

Please sign in to comment.