diff --git a/[refs] b/[refs] index 76496996fd77..f7c45c38cd22 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 61822ab5e3ed09fcfc49e37227b655202adf6130 +refs/heads/master: fa8d8c5b77a2dc467b5365a5651710161b84f16d diff --git a/trunk/fs/nfs/file.c b/trunk/fs/nfs/file.c index 238fb6641aae..8e28bffc35a0 100644 --- a/trunk/fs/nfs/file.c +++ b/trunk/fs/nfs/file.c @@ -315,13 +315,14 @@ static void nfs_invalidate_page(struct page *page, unsigned long offset) static int nfs_release_page(struct page *page, gfp_t gfp) { - if (gfp & __GFP_FS) - return !nfs_wb_page(page->mapping->host, page); - else - /* - * Avoid deadlock on nfs_wait_on_request(). - */ + /* + * Avoid deadlock on nfs_wait_on_request(). + */ + if (!(gfp & __GFP_FS)) return 0; + /* Hack... Force nfs_wb_page() to write out the page */ + SetPageDirty(page); + return !nfs_wb_page(page->mapping->host, page); } const struct address_space_operations nfs_file_aops = {