diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-10-19 00:03:27 +0200 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-10-19 23:19:25 +0200 |
commit | a49c3c7736a2e77931dabc5bc4a83fb4b2da013e (patch) | |
tree | 1921900be210540ee53a4011c9e8f781deb0367e /fs/nfs/file.c | |
parent | NFS: Fix a race in sillyrename (diff) | |
download | linux-a49c3c7736a2e77931dabc5bc4a83fb4b2da013e.tar.xz linux-a49c3c7736a2e77931dabc5bc4a83fb4b2da013e.zip |
NFSv4: Ensure that we wait for the CLOSE request to complete
Otherwise, we do end up breaking close-to-open semantics. We also end up
breaking some of the silly-rename tests in Connectathon on some setups.
Please refer to the bug-report at
http://bugzilla.linux-nfs.org/show_bug.cgi?id=150
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/file.c')
-rw-r--r-- | fs/nfs/file.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index d29f90d00aa2..b3bb89f7d5d2 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c @@ -131,7 +131,7 @@ nfs_file_release(struct inode *inode, struct file *filp) { /* Ensure that dirty pages are flushed out with the right creds */ if (filp->f_mode & FMODE_WRITE) - filemap_fdatawrite(filp->f_mapping); + nfs_wb_all(filp->f_path.dentry->d_inode); nfs_inc_stats(inode, NFSIOS_VFSRELEASE); return NFS_PROTO(inode)->file_release(inode, filp); } |