

Since Jens added the pagecache readahead support in the block layer we've
been getting bogus IO error messages from buffer.c due to __make_request
calling end_io against a non-uptodate buffer.

We can just use PF_READAHEAD to shut that up.  But really, we shouldn't even
have allocated all those pages and submittted the readahead IO if the queue
was congested.   We have the infrastructure to do that now.




 25-akpm/fs/buffer.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN fs/buffer.c~buffer_io_error-readahead-fix fs/buffer.c
--- 25/fs/buffer.c~buffer_io_error-readahead-fix	Wed Jul 30 13:44:03 2003
+++ 25-akpm/fs/buffer.c	Wed Jul 30 13:44:03 2003
@@ -507,7 +507,8 @@ static void end_buffer_async_read(struct
 		set_buffer_uptodate(bh);
 	} else {
 		clear_buffer_uptodate(bh);
-		buffer_io_error(bh);
+		if (!(current->flags & PF_READAHEAD))
+			buffer_io_error(bh);
 		SetPageError(page);
 	}
 

_
