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

分享好友

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

gt_put_super(定义在super.c中)

static void gt_put_super(struct super_block *sb){
struct gt_sb_info *sbi=GT_SB(sb);
brelse(sbi->s_sbh);
sb->s_fs_info=NULL;
kfree(sbi);
}

这个函数释放掉磁盘超级块所在的缓冲块,释放掉内存超级块

gt_statfs(定义在super.c中)

static int gt_statfs(struct dentry *dentry,struct kstatfs *buf){
struct gt_sb_info * sbi=GT_SB(dentry->d_sb);
struct gt_super_block *gs=sbi->s_gs;
buf->f_type=dentry->d_sb->s_magic;
buf->f_bsize=dentry->d_sb->s_blocksize;
buf->f_blocks=(gs->s_blocks_count-gs->s_first_data_block);
buf->f_bfree=gt_count_free_blocks(sbi);
buf->f_bavail=buf->f_bfree;
buf->f_ffree=gt_count_free_inodes(sbi);
buf->f_namelen=GT_NAME_LEN;
return ;
}

这个函数获取文件系统状态

到这里超级块的操作就完成了,接下来是普通索引节点操作,只需要一个清空函数,其他的调用vfs默认的函数

const struct inode_operations gt_file_inode_operations ={
.truncate =gt_truncate,
};


文章来源CU社区:[文件系统] 一个简单文件系统的实现

分享好友

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

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

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

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

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

技术专家

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