diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2006-09-07 14:40:21 -0400 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-09-07 14:40:21 -0400 |
commit | 85d1da67f7e1239afa3494d05be87da6fc3ecada (patch) | |
tree | 01508570249764d8b0e38183e1ea7e9666b34b78 /fs/gfs2/incore.h | |
parent | b8547856f9c158ff70effbcfd15969c908fbe1b3 (diff) |
[GFS2] Move glock hash table out of superblock
There are several reasons why we want to do this:
- Firstly its large and thus we'll scale better with multiple
GFS2 fs mounted at the same time
- Secondly its easier to scale its size as required (thats a plan
for later patches)
- Thirdly, we can use kzalloc rather than vmalloc when allocating
the superblock (its now only 4888 bytes)
- Fourth its all part of my plan to eventually be able to use RCU
with the glock hash.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/incore.h')
-rw-r--r-- | fs/gfs2/incore.h | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h index 225924ca6b3..61849607211 100644 --- a/fs/gfs2/incore.h +++ b/fs/gfs2/incore.h | |||
@@ -30,7 +30,6 @@ struct gfs2_quota_data; | |||
30 | struct gfs2_trans; | 30 | struct gfs2_trans; |
31 | struct gfs2_ail; | 31 | struct gfs2_ail; |
32 | struct gfs2_jdesc; | 32 | struct gfs2_jdesc; |
33 | struct gfs2_gl_hash_bucket; | ||
34 | struct gfs2_sbd; | 33 | struct gfs2_sbd; |
35 | 34 | ||
36 | typedef void (*gfs2_glop_bh_t) (struct gfs2_glock *gl, unsigned int ret); | 35 | typedef void (*gfs2_glop_bh_t) (struct gfs2_glock *gl, unsigned int ret); |
@@ -107,6 +106,11 @@ struct gfs2_bufdata { | |||
107 | struct list_head bd_ail_gl_list; | 106 | struct list_head bd_ail_gl_list; |
108 | }; | 107 | }; |
109 | 108 | ||
109 | struct gfs2_gl_hash_bucket { | ||
110 | rwlock_t hb_lock; | ||
111 | struct list_head hb_list; | ||
112 | }; | ||
113 | |||
110 | struct gfs2_glock_operations { | 114 | struct gfs2_glock_operations { |
111 | void (*go_xmote_th) (struct gfs2_glock * gl, unsigned int state, | 115 | void (*go_xmote_th) (struct gfs2_glock * gl, unsigned int state, |
112 | int flags); | 116 | int flags); |
@@ -442,11 +446,6 @@ struct gfs2_tune { | |||
442 | unsigned int gt_statfs_slow; | 446 | unsigned int gt_statfs_slow; |
443 | }; | 447 | }; |
444 | 448 | ||
445 | struct gfs2_gl_hash_bucket { | ||
446 | rwlock_t hb_lock; | ||
447 | struct list_head hb_list; | ||
448 | }; | ||
449 | |||
450 | enum { | 449 | enum { |
451 | SDF_JOURNAL_CHECKED = 0, | 450 | SDF_JOURNAL_CHECKED = 0, |
452 | SDF_JOURNAL_LIVE = 1, | 451 | SDF_JOURNAL_LIVE = 1, |
@@ -489,7 +488,6 @@ struct gfs2_sbd { | |||
489 | /* Lock Stuff */ | 488 | /* Lock Stuff */ |
490 | 489 | ||
491 | struct lm_lockstruct sd_lockstruct; | 490 | struct lm_lockstruct sd_lockstruct; |
492 | struct gfs2_gl_hash_bucket sd_gl_hash[GFS2_GL_HASH_SIZE]; | ||
493 | struct list_head sd_reclaim_list; | 491 | struct list_head sd_reclaim_list; |
494 | spinlock_t sd_reclaim_lock; | 492 | spinlock_t sd_reclaim_lock; |
495 | wait_queue_head_t sd_reclaim_wq; | 493 | wait_queue_head_t sd_reclaim_wq; |