aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/inode.c')
-rw-r--r--kernel/inode.c42
1 files changed, 40 insertions, 2 deletions
diff --git a/kernel/inode.c b/kernel/inode.c
index 7ce21e9..1fd4edb 100644
--- a/kernel/inode.c
+++ b/kernel/inode.c
@@ -724,7 +724,7 @@ static void fuse_inode_init_once(void * foo, kmem_cache_t * cachep,
inode_init_once(inode);
}
-int fuse_fs_init(void)
+static int __init fuse_fs_init(void)
{
int err;
@@ -745,8 +745,46 @@ int fuse_fs_init(void)
return err;
}
-void fuse_fs_cleanup(void)
+static void fuse_fs_cleanup(void)
{
unregister_filesystem(&fuse_fs_type);
kmem_cache_destroy(fuse_inode_cachep);
}
+
+int __init fuse_init(void)
+{
+ int res;
+
+ printk("fuse init (API version %i.%i)\n",
+ FUSE_KERNEL_VERSION, FUSE_KERNEL_MINOR_VERSION);
+#ifndef FUSE_MAINLINE
+ printk("fuse distribution version: %s\n", FUSE_VERSION);
+#endif
+
+ spin_lock_init(&fuse_lock);
+ res = fuse_fs_init();
+ if (res)
+ goto err;
+
+ res = fuse_dev_init();
+ if (res)
+ goto err_fs_cleanup;
+
+ return 0;
+
+ err_fs_cleanup:
+ fuse_fs_cleanup();
+ err:
+ return res;
+}
+
+void __exit fuse_exit(void)
+{
+ printk(KERN_DEBUG "fuse exit\n");
+
+ fuse_fs_cleanup();
+ fuse_dev_cleanup();
+}
+
+module_init(fuse_init);
+module_exit(fuse_exit);