Commit 88ffbf3e authored by Bob Peterson's avatar Bob Peterson

GFS2: Use resizable hash table for glocks

This patch changes the glock hash table from a normal hash table to
a resizable hash table, which scales better. This also simplifies
a lot of code.
Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
Acked-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
parent 15562c43
This diff is collapsed.
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <linux/ktime.h> #include <linux/ktime.h>
#include <linux/percpu.h> #include <linux/percpu.h>
#include <linux/lockref.h> #include <linux/lockref.h>
#include <linux/rhashtable.h>
#define DIO_WAIT 0x00000010 #define DIO_WAIT 0x00000010
#define DIO_METADATA 0x00000020 #define DIO_METADATA 0x00000020
...@@ -342,7 +343,6 @@ struct gfs2_glock { ...@@ -342,7 +343,6 @@ struct gfs2_glock {
gl_req:2, /* State in last dlm request */ gl_req:2, /* State in last dlm request */
gl_reply:8; /* Last reply from the dlm */ gl_reply:8; /* Last reply from the dlm */
unsigned int gl_hash;
unsigned long gl_demote_time; /* time of first demote request */ unsigned long gl_demote_time; /* time of first demote request */
long gl_hold_time; long gl_hold_time;
struct list_head gl_holders; struct list_head gl_holders;
...@@ -368,7 +368,7 @@ struct gfs2_glock { ...@@ -368,7 +368,7 @@ struct gfs2_glock {
loff_t end; loff_t end;
} gl_vm; } gl_vm;
}; };
struct rcu_head gl_rcu; struct rhash_head gl_node;
}; };
#define GFS2_MIN_LVB_SIZE 32 /* Min size of LVB that gfs2 supports */ #define GFS2_MIN_LVB_SIZE 32 /* Min size of LVB that gfs2 supports */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment