make ufs_inode_cache statically allocated A modular example I used for testing... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
diff --git a/fs/ufs/super.c b/fs/ufs/super.c index c4831a8..72053bc 100644 --- a/fs/ufs/super.c +++ b/fs/ufs/super.c
@@ -90,6 +90,7 @@ #include <linux/log2.h> #include <linux/seq_file.h> #include <linux/iversion.h> +#include <linux/slab-static.h> #include "ufs_fs.h" #include "ufs.h" @@ -1353,7 +1354,8 @@ static int ufs_statfs(struct dentry *dentry, struct kstatfs *buf) return 0; } -static struct kmem_cache * ufs_inode_cachep; +static struct kmem_cache_opaque ufs_inode_cache; +#define ufs_inode_cachep to_kmem_cache(&ufs_inode_cache) static struct inode *ufs_alloc_inode(struct super_block *sb) { @@ -1383,16 +1385,13 @@ static void init_once(void *foo) static int __init init_inodecache(void) { - ufs_inode_cachep = kmem_cache_create_usercopy("ufs_inode_cache", + return kmem_cache_setup_usercopy(ufs_inode_cachep, "ufs_inode_cache", sizeof(struct ufs_inode_info), 0, (SLAB_RECLAIM_ACCOUNT | SLAB_ACCOUNT), offsetof(struct ufs_inode_info, i_u1.i_symlink), sizeof_field(struct ufs_inode_info, i_u1.i_symlink), init_once); - if (ufs_inode_cachep == NULL) - return -ENOMEM; - return 0; } static void destroy_inodecache(void)