绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
[文件系统] 一个简单文件系统的实现(4)
2020-05-21 16:19:05

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

分享好友

分享这个小栈给你的朋友们,一起进步吧。

内核源码
创建时间:2020-05-18 13:36:55
内核源码精华帖内容汇总
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 飘絮絮絮丶
    专家
戳我,来吐槽~