diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-01-03 03:55:34 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-01-06 14:58:50 -0500 |
commit | 70b9ecbdb9c5fdc731f8780bffd45d9519020c4a (patch) | |
tree | 4678182bd417945cd424a652396510bc53eff8b7 /fs/nfs/inode.c | |
parent | 24174119c73983d5217da8f56a12c79a9b57e056 (diff) |
NFS: Make stat() return updated mtimes after a write()
The SuS states that a call to write() will cause mtime to be updated on
the file. In order to satisfy that requirement, we need to flush out
any cached writes in nfs_getattr().
Speed things up slightly by not committing the writes.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/inode.c')
-rw-r--r-- | fs/nfs/inode.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index acde2c5725bf..2c7f8aac1dec 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
@@ -952,6 +952,8 @@ int nfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) | |||
952 | int need_atime = NFS_I(inode)->cache_validity & NFS_INO_INVALID_ATIME; | 952 | int need_atime = NFS_I(inode)->cache_validity & NFS_INO_INVALID_ATIME; |
953 | int err; | 953 | int err; |
954 | 954 | ||
955 | /* Flush out writes to the server in order to update c/mtime */ | ||
956 | nfs_sync_inode(inode, 0, 0, FLUSH_WAIT|FLUSH_NOCOMMIT); | ||
955 | if (__IS_FLG(inode, MS_NOATIME)) | 957 | if (__IS_FLG(inode, MS_NOATIME)) |
956 | need_atime = 0; | 958 | need_atime = 0; |
957 | else if (__IS_FLG(inode, MS_NODIRATIME) && S_ISDIR(inode->i_mode)) | 959 | else if (__IS_FLG(inode, MS_NODIRATIME) && S_ISDIR(inode->i_mode)) |