From: Andrew Morton Signed-off-by: Andrew Morton --- fs/ext3/dir.c | 5 +++-- include/linux/ext3_fs.h | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff -puN fs/ext3/dir.c~ext3-get-blocks-maping-multiple-blocks-at-a-once-vs-ext3_readdir-use-generic-readahead fs/ext3/dir.c --- devel/fs/ext3/dir.c~ext3-get-blocks-maping-multiple-blocks-at-a-once-vs-ext3_readdir-use-generic-readahead 2006-01-10 20:28:15.000000000 -0800 +++ devel-akpm/fs/ext3/dir.c 2006-01-10 21:00:19.000000000 -0800 @@ -131,8 +131,9 @@ static int ext3_readdir(struct file * fi struct buffer_head *bh = NULL; map_bh.b_state = 0; - err = ext3_get_block_handle(NULL, inode, blk, &map_bh, 0, 0); - if (!err) { + err = ext3_get_blocks_handle(NULL, inode, blk, 1, + &map_bh, 0, 0); + if (err > 0) { page_cache_readahead(sb->s_bdev->bd_inode->i_mapping, &filp->f_ra, filp, diff -puN include/linux/ext3_fs.h~ext3-get-blocks-maping-multiple-blocks-at-a-once-vs-ext3_readdir-use-generic-readahead include/linux/ext3_fs.h --- devel/include/linux/ext3_fs.h~ext3-get-blocks-maping-multiple-blocks-at-a-once-vs-ext3_readdir-use-generic-readahead 2006-01-10 20:28:51.000000000 -0800 +++ devel-akpm/include/linux/ext3_fs.h 2006-01-10 20:49:45.000000000 -0800 @@ -778,9 +778,9 @@ extern unsigned long ext3_count_free (st int ext3_forget(handle_t *, int, struct inode *, struct buffer_head *, int); struct buffer_head * ext3_getblk (handle_t *, struct inode *, long, int, int *); struct buffer_head * ext3_bread (handle_t *, struct inode *, int, int, int *); -int ext3_get_block_handle(handle_t *handle, struct inode *inode, - sector_t iblock, struct buffer_head *bh_result, int create, - int extend_disksize); +int ext3_get_blocks_handle(handle_t *handle, struct inode *inode, + sector_t iblock, unsigned long maxblocks, struct buffer_head *bh_result, + int create, int extend_disksize); extern void ext3_read_inode (struct inode *); extern int ext3_write_inode (struct inode *, int); _