diff options
Diffstat (limited to 'fs/nfs/file.c')
| -rw-r--r-- | fs/nfs/file.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index cc2b874ad5a4..48e892880d5b 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c | |||
| @@ -312,7 +312,13 @@ static void nfs_invalidate_page(struct page *page, unsigned long offset) | |||
| 312 | 312 | ||
| 313 | static int nfs_release_page(struct page *page, gfp_t gfp) | 313 | static int nfs_release_page(struct page *page, gfp_t gfp) |
| 314 | { | 314 | { |
| 315 | return !nfs_wb_page(page->mapping->host, page); | 315 | if (gfp & __GFP_FS) |
| 316 | return !nfs_wb_page(page->mapping->host, page); | ||
| 317 | else | ||
| 318 | /* | ||
| 319 | * Avoid deadlock on nfs_wait_on_request(). | ||
| 320 | */ | ||
| 321 | return 0; | ||
| 316 | } | 322 | } |
| 317 | 323 | ||
| 318 | const struct address_space_operations nfs_file_aops = { | 324 | const struct address_space_operations nfs_file_aops = { |
