From: Steven Pratt <slpratt@austin.ibm.com>

>
>Ten concurrent copies of dd?
>

Ok, this test worked fairly well.  Found a bug in the code for skipping
readahead on cache hits.  This patch reduces system time on 10 processes
dding a 85GB file which is fully in cache from 117minutes down to 71
minutes.  This is only a few percent higher than current mainline so I
think we are good here.

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

 25-akpm/mm/readahead.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN mm/readahead.c~simplified-readahead-fix mm/readahead.c
--- 25/mm/readahead.c~simplified-readahead-fix	2004-12-01 21:46:53.431392184 -0800
+++ 25-akpm/mm/readahead.c	2004-12-01 21:47:06.345428952 -0800
@@ -356,8 +356,8 @@ int check_ra_success(struct file_ra_stat
 	if (actual == 0) {
 		ra->cache_hit += nr_to_read;
 		if (ra->cache_hit >= VM_MAX_CACHE_HIT) {
-			ra->flags |= RA_FLAG_INCACHE;
 			ra_off(ra);
+			ra->flags |= RA_FLAG_INCACHE;
 			return 0;
 		}
 	} else {
_