-----------------------------------写在2017/05/29 13:56--------------------------------------------------------
周六答辩,最近无所事事,重新看以前自己写的笔记,心中颇有感慨,写上来吧,如果哪天笔记本丢了,所有的回忆也都没有了。其实我真的不是一个会写东西的人,学习过程中也很少写,因此遇到同样的问题时总是又要重新百度,Google,这其实不是一个很好的习惯。
声明:因为很久没有看了,所以可能有一些是错误的,有疑问的小伙伴可以提出问题,我看到的话会回答的哦。毕竟我也是在学习中的嘛。
其实,如果你们看到这里,我相信,你们应该是一个热爱学习充满好奇心的人,笔记基本都是关于EXT2的,EXT4是研三下学期才看的,EXT4相对于EXT2来说差别很大!!但是EXT2是基础,看源代码比较好理解。好啦废话不多说啦!开始咯!
-----------------------------------------------------关于文件系统部分的源代码我都有注释,可以去我的github 下载,对你有用的话,可以给我一个star 哦 哈哈谢谢------------------
-----------------------------------github地址:https://github.com/Hafy/linux-2.6.32.67- ------------------------------------------------------------------
-----------------------------------------------转载请注明出处--------------------------------------------------------
1、分配一个struct ext2_sb_info * sbi结构
2、因为不知道该设备的块大小是多少,因此不知道超级块所在的块号以及偏移量是多少。因此会有一个猜测,然后计算得到一个逻辑上的猜测的超级块所在的块号logic_sb_block
(一)sb_bread函数解析
调用sb_bread(sb, logic_sb_block)获得该逻辑块号所在的缓冲区首部 即buffer_head 下面我们来分析一下sb_bread函数
最终会调用struct buffer_head *__bread(struct block_device *bdev, sector_t block, unsigned si