[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>
diff --git a/fs/gfs2/main.c b/fs/gfs2/main.c
index 143fda7..2bdf246 100644
--- a/fs/gfs2/main.c
+++ b/fs/gfs2/main.c
@@ -23,6 +23,7 @@
 #include "ops_fstype.h"
 #include "sys.h"
 #include "util.h"
+#include "glock.h"
 
 static void gfs2_init_inode_once(void *foo, kmem_cache_t *cachep, unsigned long flags)
 {
@@ -69,8 +70,11 @@
 	if (error)
 		return error;
 
-	error = -ENOMEM;
+	error = gfs2_glock_init();
+	if (error)
+		goto fail;
 
+	error = -ENOMEM;
 	gfs2_glock_cachep = kmem_cache_create("gfs2_glock",
 					      sizeof(struct gfs2_glock),
 					      0, 0,