summaryrefslogtreecommitdiffstats
path: root/mm/vmscan.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-12-04 03:58:56 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-12-04 03:58:56 +0000
commit1d67e90f19a7acfd9a05dc59678e7d0c5090bd0d (patch)
tree357efc7b93f8f5102110d20d293f41360ec212fc /mm/vmscan.c
parentaea27b2e18d69af87e673972246e66657b4fa274 (diff)
Merge with Linux 2.3.21.
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r--mm/vmscan.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 8ee000fc0..1ce37062b 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -424,6 +424,14 @@ static int do_try_to_free_pages(unsigned int gfp_mask)
goto done;
}
+ /* don't be too light against the d/i cache since
+ shrink_mmap() almost never fail when there's
+ really plenty of memory free. */
+ count -= shrink_dcache_memory(priority, gfp_mask);
+ count -= shrink_icache_memory(priority, gfp_mask);
+ if (count <= 0)
+ goto done;
+
/* Try to get rid of some shared memory pages.. */
if (gfp_mask & __GFP_IO) {
while (shm_swap(priority, gfp_mask)) {
@@ -437,8 +445,6 @@ static int do_try_to_free_pages(unsigned int gfp_mask)
if (!--count)
goto done;
}
-
- shrink_dcache_memory(priority, gfp_mask);
} while (--priority >= 0);
done: