From 469316378d19b059f83534532a58cb52c29d340e Mon Sep 17 00:00:00 2001 From: Christoph Lameter Date: Sun, 8 Jan 2006 01:00:54 -0800 Subject: [PATCH] --- yaml --- r: 16842 b: refs/heads/master c: ee27497df36823f2793212cad0997c044eb0e1eb h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/vmscan.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 1c4b4063d795..84759e687e4f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1480a540c98525640174a7eadd712378fcd6fd63 +refs/heads/master: ee27497df36823f2793212cad0997c044eb0e1eb diff --git a/trunk/mm/vmscan.c b/trunk/mm/vmscan.c index 5393b093a87b..73ba4046ed27 100644 --- a/trunk/mm/vmscan.c +++ b/trunk/mm/vmscan.c @@ -689,6 +689,11 @@ int migrate_pages(struct list_head *l, struct list_head *t) list_for_each_entry_safe(page, page2, l, lru) { cond_resched(); + if (page_count(page) == 1) { + /* page was freed from under us. So we are done. */ + move_to_lru(page); + continue; + } /* * Skip locked pages during the first two passes to give the * functions holding the lock time to release the page. Later we