diff options
| author | Ingo Molnar <mingo@elte.hu> | 2010-08-02 02:29:56 -0400 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2010-08-02 02:31:54 -0400 | 
| commit | 3772b734720e1a3f2dc1d95cfdfaa5332f4ccf01 (patch) | |
| tree | a1a8cc85948c086aa12a1d8014151a7ca7c04ea8 /fs/nfs/file.c | |
| parent | 9fc3af467d0749989518a23f7289a6f44e5cb214 (diff) | |
| parent | 9fe6206f400646a2322096b56c59891d530e8d51 (diff) | |
Merge commit 'v2.6.35' into perf/core
Conflicts:
	tools/perf/Makefile
	tools/perf/util/hist.c
Merge reason: Resolve the conflicts and update to latest upstream.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'fs/nfs/file.c')
| -rw-r--r-- | fs/nfs/file.c | 13 | 
1 files changed, 11 insertions, 2 deletions
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 36a5e74f51b4..f036153d9f50 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c  | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <linux/pagemap.h> | 27 | #include <linux/pagemap.h> | 
| 28 | #include <linux/aio.h> | 28 | #include <linux/aio.h> | 
| 29 | #include <linux/gfp.h> | 29 | #include <linux/gfp.h> | 
| 30 | #include <linux/swap.h> | ||
| 30 | 31 | ||
| 31 | #include <asm/uaccess.h> | 32 | #include <asm/uaccess.h> | 
| 32 | #include <asm/system.h> | 33 | #include <asm/system.h> | 
| @@ -493,11 +494,19 @@ static void nfs_invalidate_page(struct page *page, unsigned long offset) | |||
| 493 | */ | 494 | */ | 
| 494 | static int nfs_release_page(struct page *page, gfp_t gfp) | 495 | static int nfs_release_page(struct page *page, gfp_t gfp) | 
| 495 | { | 496 | { | 
| 497 | struct address_space *mapping = page->mapping; | ||
| 498 | |||
| 496 | dfprintk(PAGECACHE, "NFS: release_page(%p)\n", page); | 499 | dfprintk(PAGECACHE, "NFS: release_page(%p)\n", page); | 
| 497 | 500 | ||
| 498 | /* Only do I/O if gfp is a superset of GFP_KERNEL */ | 501 | /* Only do I/O if gfp is a superset of GFP_KERNEL */ | 
| 499 | if ((gfp & GFP_KERNEL) == GFP_KERNEL) | 502 | if (mapping && (gfp & GFP_KERNEL) == GFP_KERNEL) { | 
| 500 | nfs_wb_page(page->mapping->host, page); | 503 | int how = FLUSH_SYNC; | 
| 504 | |||
| 505 | /* Don't let kswapd deadlock waiting for OOM RPC calls */ | ||
| 506 | if (current_is_kswapd()) | ||
| 507 | how = 0; | ||
| 508 | nfs_commit_inode(mapping->host, how); | ||
| 509 | } | ||
| 501 | /* If PagePrivate() is set, then the page is not freeable */ | 510 | /* If PagePrivate() is set, then the page is not freeable */ | 
| 502 | if (PagePrivate(page)) | 511 | if (PagePrivate(page)) | 
| 503 | return 0; | 512 | return 0; | 
