[文件系统] 一个简单文件系统的实现(4)

2020-05-21 00:00:00 专区 订阅 定义 缓冲 文件系统

文件系统在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社区:[文件系统] 一个简单文件系统的实现

相关文章