From: Oleg Nesterov I think that do_page_cache_readahead() can be inlined in blockable_page_cache_readahead(), this makes the code a bit more readable in my opinion. Also makes check_ra_success() static inline. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton --- 25-akpm/mm/readahead.c | 18 +++++++----------- 1 files changed, 7 insertions(+), 11 deletions(-) diff -puN mm/readahead.c~blockable_page_cache_readahead-cleanup mm/readahead.c --- 25/mm/readahead.c~blockable_page_cache_readahead-cleanup 2005-01-25 10:01:09.585863440 -0800 +++ 25-akpm/mm/readahead.c 2005-01-25 10:01:09.588862984 -0800 @@ -349,8 +349,8 @@ int force_page_cache_readahead(struct ad * readahead isn't helping. * */ -int check_ra_success(struct file_ra_state *ra, unsigned long nr_to_read, - unsigned long actual) +static inline int check_ra_success(struct file_ra_state *ra, + unsigned long nr_to_read, unsigned long actual) { if (actual == 0) { ra->cache_hit += nr_to_read; @@ -395,15 +395,11 @@ blockable_page_cache_readahead(struct ad { int actual; - if (block) { - actual = __do_page_cache_readahead(mapping, filp, - offset, nr_to_read); - } else { - actual = do_page_cache_readahead(mapping, filp, - offset, nr_to_read); - if (actual == -1) - return 0; - } + if (block && bdi_read_congested(mapping->backing_dev_info)) + return 0; + + actual = __do_page_cache_readahead(mapping, filp, offset, nr_to_read); + return check_ra_success(ra, nr_to_read, actual); } _