NFS: Try to commit unstable writes in nfs_release_page()
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 26 Jan 2010 20:41:53 +0000 (15:41 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 26 Jan 2010 20:41:53 +0000 (15:41 -0500)
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>
fs/nfs/file.c

index 6b891328f332cfcf73e1e965a0e4b3912c56dce1..63f2071d6445784899985823cb416dc9861351b7 100644 (file)
@@ -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;