diff options
| author | 2011-03-18 23:38:50 -0700 | |
|---|---|---|
| committer | 2011-03-18 23:38:50 -0700 | |
| commit | 97eb3f24352ec6632c2127b35d8087d2a809a9b9 (patch) | |
| tree | 722948059bbd325bbca232269490124231df80d4 /mm/swap_state.c | |
| parent | Input: evdev - fix evdev_write return value on partial writes (diff) | |
| parent | Merge branch 'tsc2005' into next (diff) | |
| download | wireguard-linux-97eb3f24352ec6632c2127b35d8087d2a809a9b9.tar.xz wireguard-linux-97eb3f24352ec6632c2127b35d8087d2a809a9b9.zip | |
Merge branch 'next' into for-linus
Diffstat (limited to 'mm/swap_state.c')
| -rw-r--r-- | mm/swap_state.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/mm/swap_state.c b/mm/swap_state.c index e10f5833167f..5c8cfabbc9bc 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c @@ -157,6 +157,12 @@ int add_to_swap(struct page *page) if (!entry.val) return 0; + if (unlikely(PageTransHuge(page))) + if (unlikely(split_huge_page(page))) { + swapcache_free(entry, NULL); + return 0; + } + /* * Radix-tree node allocations from PF_MEMALLOC contexts could * completely exhaust the page allocator. __GFP_NOMEMALLOC |
