Mika Kukkonen <mika@osdl.org> says:

  CC      mm/filemap.o
mm/filemap.c: In function `filemap_nopage':
mm/filemap.c:1161: warning: comparison of unsigned expression < 0 is always false

The pagefault readaround code is currently doing purely readahead.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/mm/filemap.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff -puN mm/filemap.c~pagefault-readaround-fix mm/filemap.c
--- 25/mm/filemap.c~pagefault-readaround-fix	Wed Jul  7 14:38:57 2004
+++ 25-akpm/mm/filemap.c	Wed Jul  7 14:42:10 2004
@@ -1155,12 +1155,11 @@ retry_find:
 		did_readaround = 1;
 		ra_pages = max_sane_readahead(file->f_ra.ra_pages);
 		if (ra_pages) {
-			long start;
+			pgoff_t start = 0;
 
-			start = pgoff - ra_pages / 2;
-			if (pgoff < 0)
-				pgoff = 0;
-			do_page_cache_readahead(mapping, file, pgoff, ra_pages);
+			if (pgoff > ra_pages / 2)
+				start = pgoff - ra_pages / 2;
+			do_page_cache_readahead(mapping, file, start, ra_pages);
 		}
 		page = find_get_page(mapping, pgoff);
 		if (!page)
_