diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2011-06-15 10:29:37 +0100 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2011-07-15 09:31:48 +0100 |
commit | 17d539f0499fa2c0321b7c260831cca2bb36d119 (patch) | |
tree | 28b960ad670a0112d45afbab120f855b8e95b146 /fs/gfs2/glops.c | |
parent | 5dcd07b9f39ca3e9be5bcc387d193fc0674e1c81 (diff) |
GFS2: Cache dir hash table in a contiguous buffer
This patch adds a cache for the hash table to the directory code
in order to help simplify the way in which the hash table is
accessed. This is intended to be a first step towards introducing
some performance improvements in the directory code.
There are two follow ups that I'm hoping to see fairly shortly. One
is to simplify the hash table reading code now that we always read the
complete hash table, whether we want one entry or all of them. The
other is to introduce readahead on the heads of the hash chains
which are referred to from the table.
The hash table is a maximum of 128k in size, so it is not worth trying
to read it in small chunks.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/glops.c')
-rw-r--r-- | fs/gfs2/glops.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c index 2cca29316bd..95788ae436c 100644 --- a/fs/gfs2/glops.c +++ b/fs/gfs2/glops.c @@ -26,6 +26,7 @@ #include "rgrp.h" #include "util.h" #include "trans.h" +#include "dir.h" /** * __gfs2_ail_flush - remove all buffers for a given lock from the AIL @@ -218,6 +219,7 @@ static void inode_go_inval(struct gfs2_glock *gl, int flags) if (ip) { set_bit(GIF_INVALID, &ip->i_flags); forget_all_cached_acls(&ip->i_inode); + gfs2_dir_hash_inval(ip); } } |