Master.c:
master node用来记录管理所有on-flash上位置不固定的结构。
UBIFS把master node内容重复的写入LEB1和LEB2中,这样可以保证任何时刻都有一个有效的master node存在。master node大小为512 bytes,顺序的占用LEB的page,如果整个LEB都被master node写满,那么执行unmap操作,分配一个新空LEB。注意unmap LEB1 LEB2操作也要顺序的进行,如果同时unmap两个master LEB,系统就暂时的处于无有效master node的状态。一个master LEB可能存在masternode的多个版本,LEB内最后一个master node是有效的。
ubifs_read_master
函数功能:在ubifs被挂载的时候用来寻找并且读出node中的有效数据并且将数据复制到c->mst_node缓存区中去结构体中去。
① :首先调用scan_for_master()将masternode中的内容复制到c->mst_node中去,。
② 使用c->mst_node中的内容将c中的变量进行赋值,其中c是结构体“ubifs_info”。
③ 调用validate_master()对于从master中读出的内容进行的有效性进行检查。
scan_for_master
fs/ubifs/master.c
函数功能