2006-10-30 20:04:00

by OGAWA Hirofumi

[permalink] [raw]
Subject: [PATCH 1/4] Cleanup read_pages()

Current read_pages() assume ->readpages() frees the passed pages.

This patch free the pages in ->read_pages(), if those were remaining
in the pages_list. So, readpages() just can ignore the remaining
pages in pages_list.

Signed-off-by: OGAWA Hirofumi <[email protected]>
---

mm/readahead.c | 2 ++
1 file changed, 2 insertions(+)

diff -puN mm/readahead.c~readpages-fixes mm/readahead.c
--- linux-2.6/mm/readahead.c~readpages-fixes 2006-10-31 04:45:38.000000000 +0900
+++ linux-2.6-hirofumi/mm/readahead.c 2006-10-31 04:46:37.000000000 +0900
@@ -167,6 +167,8 @@ static int read_pages(struct address_spa

if (mapping->a_ops->readpages) {
ret = mapping->a_ops->readpages(filp, mapping, pages, nr_pages);
+ /* Clean up the remaining pages */
+ put_pages_list(pages);
goto out;
}

_