linux/fs/ext3
Andrew Morton d8733c2956 [PATCH] ext3_readdir: use generic readahead
Linus points out that ext3_readdir's readahead only cuts in when
ext3_readdir() is operating at the very start of the directory.  So for large
directories we end up performing no readahead at all and we suck.

So take it all out and use the core VM's page_cache_readahead().  This means
that ext3 directory reads will use all of readahead's dynamic sizing goop.

Note that we're using the directory's filp->f_ra to hold the readahead state,
but readahead is actually being performed against the underlying blockdev's
address_space.  Fortunately the readahead code is all set up to handle this.

Tested with printk.  It works.  I was struggling to find a real workload which
actually cared.

(The patch also exports page_cache_readahead() to GPL modules)

Cc: "Stephen C. Tweedie" <sct@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-23 07:38:09 -08:00
..
acl.c [PATCH] Fix two ext[23] uninitialized warnings 2006-02-03 08:32:05 -08:00
acl.h [PATCH] remove <linux/xattr_acl.h> 2005-06-23 09:45:33 -07:00
balloc.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
bitmap.c [PATCH] fs/ext3/: small cleanups 2006-01-10 08:01:56 -08:00
dir.c [PATCH] ext3_readdir: use generic readahead 2006-03-23 07:38:09 -08:00
file.c [PATCH] ext3: reduce allocate-with-reservation lock latencies 2005-06-28 21:20:35 -07:00
fsync.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hash.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ialloc.c [PATCH] fs/ext3/: small cleanups 2006-01-10 08:01:56 -08:00
inode.c [PATCH] ext3_readdir: use generic readahead 2006-03-23 07:38:09 -08:00
ioctl.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
namei.c [PATCH] ext3: ext3_symlink should use GFP_NOFS allocations inside 2006-03-11 09:19:34 -08:00
namei.h [PATCH] ext3: sparse fixes 2005-10-30 17:37:25 -08:00
resize.c [PATCH] ext3: use sbi instead of EXT3_SB() in resize code. 2006-01-08 20:13:56 -08:00
super.c [PATCH] mutex subsystem, semaphore to mutex: VFS, sb->s_lock 2006-01-09 15:59:25 -08:00
symlink.c Fix nasty ncpfs symlink handling bug. 2005-08-19 18:02:56 -07:00
xattr_security.c [PATCH] ext3: Enable atomic inode security labeling 2005-09-09 13:57:28 -07:00
xattr_trusted.c [PATCH] capable/capability.h (fs/) 2006-01-11 18:42:13 -08:00
xattr_user.c [PATCH] remove ext3 xattr permission checks 2006-01-10 08:01:30 -08:00
xattr.c [PATCH] remove ext3 xattr permission checks 2006-01-10 08:01:30 -08:00
xattr.h [PATCH] ext3: Enable atomic inode security labeling 2005-09-09 13:57:28 -07:00