[文件系统] 一个简单文件系统的实现(4)
文件系统在kernel中被当作一个模块实现
也有module_init和module_exit(定义在super.c)
module_init(init_gt_fs)
module_exit(exit_gt_fs)
init_gt_fs(定义在super.c)
static int __init init_gt_fs(void){
int err=init_inodecache();
if(err)
return err;
err=register_filesystem(>_fs_type);//向内核注册GT文件系统
if(err)
goto out;
return ;
out:
destroy_inodecache();
return err;
}
init_gt_fs中调用init_inodecache创建GTFS的内存索引节点缓冲池(我瞎猜的...对这个不了解..)
init_inodecache(定义在super.c中)
static struct kmem_cache *gt_inode_cachep;
static int init_inodecache(void){
gt_inode_cachep=kmem_cache_create("gt_inode_cache",sizeof(struct gt_inode_info),,(SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD),init_once);
if(gt_inode_cachep==NULL)
return -ENOMEM;
return ;
}
然后就是exit_gt_fs(定义在super.c中)
static void __exit exit_gt_fs(void){
unregister_filesystem(>_fs_type);//注销文件系统
destroy_inodecache();//销毁缓冲池
}
文章来源CU社区:[文件系统] 一个简单文件系统的实现
相关文章