aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/incore.h
diff options
context:
space:
mode:
authorSteven Whitehouse <swhiteho@redhat.com>2006-09-07 14:40:21 -0400
committerSteven Whitehouse <swhiteho@redhat.com>2006-09-07 14:40:21 -0400
commit85d1da67f7e1239afa3494d05be87da6fc3ecada (patch)
tree01508570249764d8b0e38183e1ea7e9666b34b78 /fs/gfs2/incore.h
parentb8547856f9c158ff70effbcfd15969c908fbe1b3 (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.h12
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;
30struct gfs2_trans; 30struct gfs2_trans;
31struct gfs2_ail; 31struct gfs2_ail;
32struct gfs2_jdesc; 32struct gfs2_jdesc;
33struct gfs2_gl_hash_bucket;
34struct gfs2_sbd; 33struct gfs2_sbd;
35 34
36typedef void (*gfs2_glop_bh_t) (struct gfs2_glock *gl, unsigned int ret); 35typedef 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
109struct gfs2_gl_hash_bucket {
110 rwlock_t hb_lock;
111 struct list_head hb_list;
112};
113
110struct gfs2_glock_operations { 114struct 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
445struct gfs2_gl_hash_bucket {
446 rwlock_t hb_lock;
447 struct list_head hb_list;
448};
449
450enum { 449enum {
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;