diff options
| author | Kalle Valo <kvalo@qca.qualcomm.com> | 2012-03-05 19:32:58 +0200 |
|---|---|---|
| committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2012-03-05 19:32:58 +0200 |
| commit | 05e5bd0f3daddb0368a433af5b58be68c62dc365 (patch) | |
| tree | a54c90523b72fb6e61b7bfe01fb8917e16825781 /mm/swap_state.c | |
| parent | daa16bc52ad8e9513506fca29a038a1460e63638 (diff) | |
| parent | c288ec614e264b46853c65d3db9ccf91d53c9484 (diff) | |
Merge remote branch 'wireless-next/master' into ath6kl-next
Conflicts:
drivers/net/wireless/ath/ath6kl/cfg80211.c
Diffstat (limited to 'mm/swap_state.c')
| -rw-r--r-- | mm/swap_state.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/mm/swap_state.c b/mm/swap_state.c index 78cc4d1f6cce..470038a91873 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c @@ -13,7 +13,6 @@ #include <linux/swapops.h> #include <linux/init.h> #include <linux/pagemap.h> -#include <linux/buffer_head.h> #include <linux/backing-dev.h> #include <linux/pagevec.h> #include <linux/migrate.h> @@ -301,6 +300,16 @@ struct page *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask, new_page = alloc_page_vma(gfp_mask, vma, addr); if (!new_page) break; /* Out of memory */ + /* + * The memcg-specific accounting when moving + * pages around the LRU lists relies on the + * page's owner (memcg) to be valid. Usually, + * pages are assigned to a new owner before + * being put on the LRU list, but since this + * is not the case here, the stale owner from + * a previous allocation cycle must be reset. + */ + mem_cgroup_reset_owner(new_page); } /* |
