From: Fengguang Wu We should first check (page!=NULL) before PageWriteback(page). Signed-off-by: Andrew Morton --- mm/readahead.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff -puN mm/readahead.c~mm-share-pg_readahead-and-pg_reclaim-fix mm/readahead.c --- a/mm/readahead.c~mm-share-pg_readahead-and-pg_reclaim-fix +++ a/mm/readahead.c @@ -439,11 +439,13 @@ page_cache_readahead_ondemand(struct add if (!ra->ra_pages) return 0; - /* It's PG_reclaim! */ - if (PageWriteback(page)) - return 0; - if (page) { + /* + * It can be PG_reclaim. + */ + if (PageWriteback(page)) + return 0; + ClearPageReadahead(page); /* _