UBIFS文件系统(五)

UBIFS文件系统(五)

本文主要解释如下几个问题:

  1. 为什么data node在空间索引时,并不从freeable_list中查找,而为index node索引剩余空间的时候则会?
    写data node时,当该node对应的key在TNC中存在时,会发生node的替换,原node所在LEB的dirty值增加,该LEB可能会成为freeable LEB,但是写数据时该LEB并不在索引的范围之内,这是由于将该存在于该LEB中的node编成脏的新的node可能此时正存在于jhead的wbuf中,还没有同步到flash当中。如果此时将该LEB索引,必会先对其进行unmap,如果此时发生异常掉电则数据将会丢失。而当为index node索引空间时,根据do_commit的流程,此时的jhead对应的wbuf均已被同步到flash,所以此时可以从freeable_list中查找空闲LEB。

  2. 如何判断文件系统是否需要replay?
    文件系统挂载时,会将need_recovery标志写入master node中,当正常卸载调用unmount时会将该标识清除,而如果发生异常掉电时,该标志将仍然存在,再次挂载时则根据该标志是否为1来判断上次是否是正常卸载,从而决定是否replay。

  3. mkfs.ubifs 的 -F参数的作用?
    -F参数将标志为UBIFS_FLG_SPACE_FIXUP保存到sb_node中,当该分区被首次mount为rw模式时(包括从ro模式remount为rw模式),ubifs会将分区内所有包含free空间的LEB进行读取、擦除、回写的操作,以保证所有的n

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值