diff options
Diffstat (limited to 'fs/nfs/file.c')
-rw-r--r-- | fs/nfs/file.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 0dd6be346aa7..fab20d06d936 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c | |||
@@ -315,14 +315,13 @@ static void nfs_invalidate_page(struct page *page, unsigned long offset) | |||
315 | 315 | ||
316 | static int nfs_release_page(struct page *page, gfp_t gfp) | 316 | static int nfs_release_page(struct page *page, gfp_t gfp) |
317 | { | 317 | { |
318 | /* | 318 | /* If PagePrivate() is set, then the page is not freeable */ |
319 | * Avoid deadlock on nfs_wait_on_request(). | 319 | return 0; |
320 | */ | 320 | } |
321 | if (!(gfp & __GFP_FS)) | 321 | |
322 | return 0; | 322 | static int nfs_launder_page(struct page *page) |
323 | /* Hack... Force nfs_wb_page() to write out the page */ | 323 | { |
324 | SetPageDirty(page); | 324 | return nfs_wb_page(page->mapping->host, page); |
325 | return !nfs_wb_page(page->mapping->host, page); | ||
326 | } | 325 | } |
327 | 326 | ||
328 | const struct address_space_operations nfs_file_aops = { | 327 | const struct address_space_operations nfs_file_aops = { |
@@ -338,6 +337,7 @@ const struct address_space_operations nfs_file_aops = { | |||
338 | #ifdef CONFIG_NFS_DIRECTIO | 337 | #ifdef CONFIG_NFS_DIRECTIO |
339 | .direct_IO = nfs_direct_IO, | 338 | .direct_IO = nfs_direct_IO, |
340 | #endif | 339 | #endif |
340 | .launder_page = nfs_launder_page, | ||
341 | }; | 341 | }; |
342 | 342 | ||
343 | static ssize_t nfs_file_write(struct kiocb *iocb, const struct iovec *iov, | 343 | static ssize_t nfs_file_write(struct kiocb *iocb, const struct iovec *iov, |