diff options
author | Bob Peterson <rpeterso@redhat.com> | 2011-10-27 12:16:06 -0400 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2011-11-08 04:52:12 -0500 |
commit | dfe4d34b39b80faff52489f950a18523da7581bf (patch) | |
tree | be478e2c4988612eef88a1669f774dd8f9f9b8af /fs/gfs2/dir.h | |
parent | 20ed0535d35b74c9e4fa5777766d6e836fe3c90c (diff) |
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/dir.h')
-rw-r--r-- | fs/gfs2/dir.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/dir.h b/fs/gfs2/dir.h index ff5772fbf024..98c960beab35 100644 --- a/fs/gfs2/dir.h +++ b/fs/gfs2/dir.h | |||
@@ -25,7 +25,7 @@ extern int gfs2_dir_add(struct inode *inode, const struct qstr *filename, | |||
25 | const struct gfs2_inode *ip); | 25 | const struct gfs2_inode *ip); |
26 | extern int gfs2_dir_del(struct gfs2_inode *dip, const struct dentry *dentry); | 26 | extern int gfs2_dir_del(struct gfs2_inode *dip, const struct dentry *dentry); |
27 | extern int gfs2_dir_read(struct inode *inode, u64 *offset, void *opaque, | 27 | extern int gfs2_dir_read(struct inode *inode, u64 *offset, void *opaque, |
28 | filldir_t filldir); | 28 | filldir_t filldir, struct file_ra_state *f_ra); |
29 | extern int gfs2_dir_mvino(struct gfs2_inode *dip, const struct qstr *filename, | 29 | extern int gfs2_dir_mvino(struct gfs2_inode *dip, const struct qstr *filename, |
30 | const struct gfs2_inode *nip, unsigned int new_type); | 30 | const struct gfs2_inode *nip, unsigned int new_type); |
31 | 31 | ||