aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memory.c
diff options
context:
space:
mode:
authorHugh Dickins <hugh@veritas.com>2009-01-06 17:39:25 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2009-01-06 18:59:02 -0500
commitb5934c531849ff4a51ce0f290141efe564290e40 (patch)
tree0c741a5bd6178db11f1147875f59e7a1a9d1754d /mm/memory.c
parent51726b1222863852c46ca21ed0115b85d1edfd89 (diff)
mm: add_active_or_unevictable into rmap
lru_cache_add_active_or_unevictable() and page_add_new_anon_rmap() always appear together. Save some symbol table space and some jumping around by removing lru_cache_add_active_or_unevictable(), folding its code into page_add_new_anon_rmap(): like how we add file pages to lru just after adding them to page cache. Remove the nearby "TODO: is this safe?" comments (yes, it is safe), and change page_add_new_anon_rmap()'s address BUG_ON to VM_BUG_ON as originally intended. Signed-off-by: Hugh Dickins <hugh@veritas.com> Acked-by: Rik van Riel <riel@redhat.com> Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Cc: Mel Gorman <mel@csn.ul.ie> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/memory.c')
-rw-r--r--mm/memory.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/mm/memory.c b/mm/memory.c
index b5af358b8b22..a138c50dc39a 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1949,10 +1949,7 @@ gotten:
1949 */ 1949 */
1950 ptep_clear_flush_notify(vma, address, page_table); 1950 ptep_clear_flush_notify(vma, address, page_table);
1951 SetPageSwapBacked(new_page); 1951 SetPageSwapBacked(new_page);
1952 lru_cache_add_active_or_unevictable(new_page, vma);
1953 page_add_new_anon_rmap(new_page, vma, address); 1952 page_add_new_anon_rmap(new_page, vma, address);
1954
1955//TODO: is this safe? do_anonymous_page() does it this way.
1956 set_pte_at(mm, address, page_table, entry); 1953 set_pte_at(mm, address, page_table, entry);
1957 update_mmu_cache(vma, address, entry); 1954 update_mmu_cache(vma, address, entry);
1958 if (old_page) { 1955 if (old_page) {
@@ -2448,7 +2445,6 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
2448 goto release; 2445 goto release;
2449 inc_mm_counter(mm, anon_rss); 2446 inc_mm_counter(mm, anon_rss);
2450 SetPageSwapBacked(page); 2447 SetPageSwapBacked(page);
2451 lru_cache_add_active_or_unevictable(page, vma);
2452 page_add_new_anon_rmap(page, vma, address); 2448 page_add_new_anon_rmap(page, vma, address);
2453 set_pte_at(mm, address, page_table, entry); 2449 set_pte_at(mm, address, page_table, entry);
2454 2450
@@ -2597,7 +2593,6 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
2597 if (anon) { 2593 if (anon) {
2598 inc_mm_counter(mm, anon_rss); 2594 inc_mm_counter(mm, anon_rss);
2599 SetPageSwapBacked(page); 2595 SetPageSwapBacked(page);
2600 lru_cache_add_active_or_unevictable(page, vma);
2601 page_add_new_anon_rmap(page, vma, address); 2596 page_add_new_anon_rmap(page, vma, address);
2602 } else { 2597 } else {
2603 inc_mm_counter(mm, file_rss); 2598 inc_mm_counter(mm, file_rss);
@@ -2607,7 +2602,6 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
2607 get_page(dirty_page); 2602 get_page(dirty_page);
2608 } 2603 }
2609 } 2604 }
2610//TODO: is this safe? do_anonymous_page() does it this way.
2611 set_pte_at(mm, address, page_table, entry); 2605 set_pte_at(mm, address, page_table, entry);
2612 2606
2613 /* no need to invalidate: a not-present page won't be cached */ 2607 /* no need to invalidate: a not-present page won't be cached */