diff options
author | Michal Simek <monstr@monstr.eu> | 2011-01-10 09:29:29 +0100 |
---|---|---|
committer | Michal Simek <monstr@monstr.eu> | 2011-01-10 09:29:29 +0100 |
commit | 20c040ce2176be4be250503497a0a103a3fb3b3e (patch) | |
tree | fce5d1cf5860ea2aeb292736fd373da8e2ea5a98 /mm/vmscan.c | |
parent | 7f01af04bdf59448f3d75744d7ad9713331bd0f7 (diff) | |
parent | 3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5 (diff) |
Merge commit 'v2.6.37' into next
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r-- | mm/vmscan.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index d31d7ce52c0e..9ca587c69274 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -494,9 +494,16 @@ static int __remove_mapping(struct address_space *mapping, struct page *page) spin_unlock_irq(&mapping->tree_lock); swapcache_free(swap, page); } else { + void (*freepage)(struct page *); + + freepage = mapping->a_ops->freepage; + __remove_from_page_cache(page); spin_unlock_irq(&mapping->tree_lock); mem_cgroup_uncharge_cache_page(page); + + if (freepage != NULL) + freepage(page); } return 1; |