diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-10-30 01:58:18 -0500 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-10-30 01:58:18 -0500 |
commit | f0612bbc41f65f5a684f69d714a1a17a6f0f40c5 (patch) | |
tree | 8c070070bb355843cfa4635643e9da7c2c4cd44a /mm/vmscan.c | |
parent | b0c4e148bd591629749d02a8fbc8d81c26d548cf (diff) | |
parent | 81cfb8864c73230eb1c37753aba517db15cf4d8f (diff) | |
download | linux-f0612bbc41f65f5a684f69d714a1a17a6f0f40c5.tar.gz linux-f0612bbc41f65f5a684f69d714a1a17a6f0f40c5.tar.bz2 linux-f0612bbc41f65f5a684f69d714a1a17a6f0f40c5.zip |
Merge branch 'upstream'
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r-- | mm/vmscan.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index 843c87d1e61f..135bf8ca96ee 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -417,7 +417,9 @@ static int shrink_list(struct list_head *page_list, struct scan_control *sc) * Anonymous process memory has backing store? * Try to allocate it some swap space here. */ - if (PageAnon(page) && !PageSwapCache(page) && sc->may_swap) { + if (PageAnon(page) && !PageSwapCache(page)) { + if (!sc->may_swap) + goto keep_locked; if (!add_to_swap(page)) goto activate_locked; } @@ -519,7 +521,7 @@ static int shrink_list(struct list_head *page_list, struct scan_control *sc) #ifdef CONFIG_SWAP if (PageSwapCache(page)) { - swp_entry_t swap = { .val = page->private }; + swp_entry_t swap = { .val = page_private(page) }; __delete_from_swap_cache(page); write_unlock_irq(&mapping->tree_lock); swap_free(swap); |