diff options
Diffstat (limited to 'kernel/inode.c')
-rw-r--r-- | kernel/inode.c | 42 |
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); |