linux0.12-文件系统-底层通用函数

iget() ----- 从设备dev上读取节点号为nr的i结点

1.从i结点表申请一个临时i结点

2.扫描i节点表,查找(设备号==dev&&i节点号==nr)的项

若未找到,则:

(1)用临时结点建立一个i节点

(2)从设备dev读取该i节点的信息

(3)返回该结点

若找到,等待i节点解锁

3.若(设备号!=dev||节点号!=nr),则go to step 2

4.i节点引用计数增1

5.判断i节点的类型

若i节点是某个文件系统的安装点,则:

(1)在超级块中搜寻安装在此i节点的超级块

(2)将该i节点写盘

(3)从(1)的超级块上取设备号

(4)令i节点号为1

(5)重新扫描整个i节点表,获取被安装文件系统的根节点

若i节点不是其它文件系统的安装点,则:

(1)释放临时申请的i节点

(2)返回找到的i节点指针


iput ----- 释放i节点

1.若链接数为0,则释放所占用的磁盘块,释放i节点

2.把i节点的引用计数减1

3.判断i节点的类型

(1)管着:唤醒等待的进程

(2)块设备:刷新设备

转载于:https://www.cnblogs.com/windmissing/archive/2012/04/23/2559836.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值