summaryrefslogtreecommitdiff
path: root/fs/nfs
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2010-01-26 15:41:53 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2010-01-26 15:41:53 -0500
commit82be934a59ff891cac598727e5a862ba2b9d1fac (patch)
tree7b5763df79774ef9a27aaf4901621fc8015b3e2e /fs/nfs
parentc9edda7140ec6a22accf7f2f86da362dfbfd41fc (diff)
downloadlinux-3.10-82be934a59ff891cac598727e5a862ba2b9d1fac.tar.gz
linux-3.10-82be934a59ff891cac598727e5a862ba2b9d1fac.tar.bz2
linux-3.10-82be934a59ff891cac598727e5a862ba2b9d1fac.zip
NFS: Try to commit unstable writes in nfs_release_page()
If someone calls nfs_release_page(), we presumably already know that the page is clean, however it may be holding an unstable write. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: stable@kernel.org Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r--fs/nfs/file.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index 6b891328f33..63f2071d644 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -486,6 +486,8 @@ static int nfs_release_page(struct page *page, gfp_t gfp)
{
dfprintk(PAGECACHE, "NFS: release_page(%p)\n", page);
+ if (gfp & __GFP_WAIT)
+ nfs_wb_page(page->mapping->host, page);
/* If PagePrivate() is set, then the page is not freeable */
if (PagePrivate(page))
return 0;