On Sun, May 1, 2011 at 8:03 AM, Minchan Kim <minchan.kim@xxxxxxxxx> wrote: > The lru_deactivate_fn should not move page which in on unevictable lru > into inactive list. Otherwise, we can meet BUG when we use isolate_lru_pages > as __isolate_lru_page could return -EINVAL. > It's really BUG and let's fix it. > > Reported-by: Ying Han <yinghan@xxxxxxxxxx> > Tested-by: Ying Han <yinghan@xxxxxxxxxx> > Signed-off-by: Minchan Kim <minchan.kim@xxxxxxxxx> > --- > mm/swap.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/mm/swap.c b/mm/swap.c > index a83ec5a..2e9656d 100644 > --- a/mm/swap.c > +++ b/mm/swap.c > @@ -429,6 +429,9 @@ static void lru_deactivate_fn(struct page *page, void *arg) > if (!PageLRU(page)) > return; > > + if (PageUnevictable(page)) > + return; > + > /* Some processes are using the page */ > if (page_mapped(page)) > return; > -- > 1.7.1 Thanks Minchan for the fix, and i haven't been able to reproducing the issue after applying the patch. --Ying > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href