summaryrefslogtreecommitdiff
path: root/mm/page_alloc.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 20:30:02 -0800
committerLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 20:30:02 -0800
commit595cf06fad2068ed3e97caabbb92ebe71ffd97d9 (patch)
tree04f603a981813fa193c4e88a1ac88b8a04a5ad13 /mm/page_alloc.c
parent857805c6bdc445542e35347e18f1f0d21353a52c (diff)
v2.4.13.6 -> v2.4.13.7
- me: reinstate "delete swap cache on low swap" code - David Miller: ksoftirqd startup race fix - Hugh Dickins: make tmpfs free swap cache entries proactively
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r--mm/page_alloc.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index d77c9046bef2..5418504b0eab 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -137,14 +137,10 @@ static void __free_pages_ok (struct page *page, unsigned int order)
return;
local_freelist:
- /*
- * This is a little subtle: if the allocation order
- * wanted is major than zero we'd better take all the pages
- * local since we must deal with fragmentation too and we
- * can't rely on the nr_local_pages information.
- */
- if (current->nr_local_pages && !current->allocation_order)
+ if (current->nr_local_pages)
goto back_local_freelist;
+ if (in_interrupt())
+ goto back_local_freelist;
list_add(&page->list, &current->local_pages);
page->index = order;