From: Ram the 4th patch looks wrong to me. if blocking mode is requested and if the queue is congested we should be able to go ahead and block right? But in this case it looks like it is doing the other way round. The correct patch must be if (!block && bdi_read_congested(mapping->backing_dev_info)) ^^^^^^ + return 0; + Signed-off-by: Andrew Morton --- 25-akpm/mm/readahead.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN mm/readahead.c~blockable_page_cache_readahead-cleanup-fix mm/readahead.c --- 25/mm/readahead.c~blockable_page_cache_readahead-cleanup-fix 2005-01-28 20:57:46.800118048 -0800 +++ 25-akpm/mm/readahead.c 2005-01-28 20:57:46.804117440 -0800 @@ -395,7 +395,7 @@ blockable_page_cache_readahead(struct ad { int actual; - if (block && bdi_read_congested(mapping->backing_dev_info)) + if (!block && bdi_read_congested(mapping->backing_dev_info)) return 0; actual = __do_page_cache_readahead(mapping, filp, offset, nr_to_read); _