X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=fs%2Fgfs2%2Fmain.c;h=053e2ebbbd502f9a70ba00704ac96150be3e2ff1;hb=36d99df2fb474222ab47fbe8ae7385661033223b;hp=d5d4e68b88070430e667aec80d1bb91b6e571c28;hpb=22aadf8a07067644e101267ed5003043f2ad05bf;p=linux-2.6-omap-h63xx.git diff --git a/fs/gfs2/main.c b/fs/gfs2/main.c index d5d4e68b880..053e2ebbbd5 100644 --- a/fs/gfs2/main.c +++ b/fs/gfs2/main.c @@ -24,17 +24,16 @@ #include "util.h" #include "glock.h" -static void gfs2_init_inode_once(void *foo, struct kmem_cache *cachep, unsigned long flags) +static void gfs2_init_inode_once(struct kmem_cache *cachep, void *foo) { struct gfs2_inode *ip = foo; inode_init_once(&ip->i_inode); - spin_lock_init(&ip->i_spin); init_rwsem(&ip->i_rw_mutex); - memset(ip->i_cache, 0, sizeof(ip->i_cache)); + ip->i_alloc = NULL; } -static void gfs2_init_glock_once(void *foo, struct kmem_cache *cachep, unsigned long flags) +static void gfs2_init_glock_once(struct kmem_cache *cachep, void *foo) { struct gfs2_glock *gl = foo; @@ -90,6 +89,12 @@ static int __init init_gfs2_fs(void) if (!gfs2_bufdata_cachep) goto fail; + gfs2_rgrpd_cachep = kmem_cache_create("gfs2_rgrpd", + sizeof(struct gfs2_rgrpd), + 0, 0, NULL); + if (!gfs2_rgrpd_cachep) + goto fail; + error = register_filesystem(&gfs2_fs_type); if (error) goto fail; @@ -107,6 +112,11 @@ static int __init init_gfs2_fs(void) fail_unregister: unregister_filesystem(&gfs2_fs_type); fail: + gfs2_glock_exit(); + + if (gfs2_rgrpd_cachep) + kmem_cache_destroy(gfs2_rgrpd_cachep); + if (gfs2_bufdata_cachep) kmem_cache_destroy(gfs2_bufdata_cachep); @@ -127,10 +137,12 @@ fail: static void __exit exit_gfs2_fs(void) { + gfs2_glock_exit(); gfs2_unregister_debugfs(); unregister_filesystem(&gfs2_fs_type); unregister_filesystem(&gfs2meta_fs_type); + kmem_cache_destroy(gfs2_rgrpd_cachep); kmem_cache_destroy(gfs2_bufdata_cachep); kmem_cache_destroy(gfs2_inode_cachep); kmem_cache_destroy(gfs2_glock_cachep);