do_generic_mapping_read() has an open-coded version of find_get_page() hidden
inside it.



 filemap.c |   15 +++------------
 1 files changed, 3 insertions(+), 12 deletions(-)

diff -puN mm/filemap.c~use-find_get_page mm/filemap.c
--- 25/mm/filemap.c~use-find_get_page	2003-02-23 02:02:37.000000000 -0800
+++ 25-akpm/mm/filemap.c	2003-02-23 02:03:45.000000000 -0800
@@ -559,21 +559,12 @@ void do_generic_mapping_read(struct addr
 		page_cache_readahead(mapping, ra, filp, index);
 
 		nr = nr - offset;
-
-		/*
-		 * Try to find the data in the page cache..
-		 */
 find_page:
-		read_lock(&mapping->page_lock);
-		page = radix_tree_lookup(&mapping->page_tree, index);
-		if (!page) {
-			read_unlock(&mapping->page_lock);
-			handle_ra_miss(mapping,ra);
+		page = find_get_page(mapping, index);
+		if (unlikely(page == NULL)) {
+			handle_ra_miss(mapping, ra);
 			goto no_cached_page;
 		}
-		page_cache_get(page);
-		read_unlock(&mapping->page_lock);
-
 		if (!PageUptodate(page))
 			goto page_not_up_to_date;
 page_ok:

_