summaryrefslogtreecommitdiffstats
path: root/fs/gfs2/file.c
diff options
context:
space:
mode:
authorBob Peterson <rpeterso@redhat.com>2011-10-27 18:16:06 +0200
committerSteven Whitehouse <swhiteho@redhat.com>2011-11-08 10:52:12 +0100
commitdfe4d34b39b80faff52489f950a18523da7581bf (patch)
treebe478e2c4988612eef88a1669f774dd8f9f9b8af /fs/gfs2/file.c
parentGFS2: Fix up REQ flags (diff)
downloadlinux-dfe4d34b39b80faff52489f950a18523da7581bf.tar.xz
linux-dfe4d34b39b80faff52489f950a18523da7581bf.zip
GFS2: Add readahead to sequential directory traversal
This patch adds read-ahead capability to GFS2's directory hash table management. It greatly improves performance for some directory operations. For example: In one of my file systems that has 1000 directories, each of which has 1000 files, time to execute a recursive ls (time ls -fR /mnt/gfs2 > /dev/null) was reduced from 2m2.814s on a stock kernel to 0m45.938s. Signed-off-by: Bob Peterson <rpeterso@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/file.c')
-rw-r--r--fs/gfs2/file.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
index ce36a56dfeac..46f6f9ac1ebc 100644
--- a/fs/gfs2/file.c
+++ b/fs/gfs2/file.c
@@ -105,7 +105,7 @@ static int gfs2_readdir(struct file *file, void *dirent, filldir_t filldir)
return error;
}
- error = gfs2_dir_read(dir, &offset, dirent, filldir);
+ error = gfs2_dir_read(dir, &offset, dirent, filldir, &file->f_ra);
gfs2_glock_dq_uninit(&d_gh);