summaryrefslogtreecommitdiff
path: root/fs/gfs2/main.c
diff options
context:
space:
mode:
authorSteven Whitehouse <swhiteho@redhat.com>2006-09-12 10:10:01 -0400
committerSteven Whitehouse <swhiteho@redhat.com>2006-09-12 10:10:01 -0400
commitb6397893a5ed81970e803d61ee2f1a0e79f87438 (patch)
tree88b1f9fe213b70f0c4d96583bb40601d9cfc446d /fs/gfs2/main.c
parent24264434603cc102d71fb2a1b3b7e282a781f449 (diff)
downloadlwn-b6397893a5ed81970e803d61ee2f1a0e79f87438.tar.gz
lwn-b6397893a5ed81970e803d61ee2f1a0e79f87438.zip
[GFS2] Use hlist for glock hash chains
This results in smaller list heads, so that we can have more chains in the same amount of memory (twice as many). I've multiplied the size of the table by four though - this is because we are saving memory by not having one lock per chain any more. So we land up using about the same amount of memory for the hash table as we did before I started these changes, the difference being that we now have four times as many hash chains. The reason that I say "about the same amount of memory" is that the actual amount now depends upon the NR_CPUS and some of the config variables, so that its not exact and in some cases we do use more memory. Eventually we might want to scale the hash table size according to the size of physical ram as measured on module load. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/main.c')
-rw-r--r--fs/gfs2/main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/main.c b/fs/gfs2/main.c
index 2bdf246436c7..d2867988cc34 100644
--- a/fs/gfs2/main.c
+++ b/fs/gfs2/main.c
@@ -42,7 +42,7 @@ static void gfs2_init_glock_once(void *foo, kmem_cache_t *cachep, unsigned long
struct gfs2_glock *gl = foo;
if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) ==
SLAB_CTOR_CONSTRUCTOR) {
- INIT_LIST_HEAD(&gl->gl_list);
+ INIT_HLIST_NODE(&gl->gl_list);
spin_lock_init(&gl->gl_spin);
INIT_LIST_HEAD(&gl->gl_holders);
INIT_LIST_HEAD(&gl->gl_waiters1);