ubifs mount 函数分析

MOUNT

函数在super.c中的mount_ubifs()函数:

 检测卷是否为空,如果volume为空的,而ubi为只读的就无法进行初始化。

  初始化bottom_up_buf  bottom_up_buf: a buffer which is used bydirty_cow_bottom_up()' in tnc.c,在后面我们会看到在dirty_cow_bottom_up中将znode的所有的ancestors(父节点,父节点的父节点,一直到根节点未知)都设为dirty。所以在标记之前要记录一下所有的ancestors znode。这个bottom_up_buf就是用于这个目的.

  初始化sbuf@sbuf: a buffer of LEB size used by GC and replay for scanning

  大块读的初始化事项:bulk_readbu_init(c);

  读超级块,如果该volume是空的,显然不存在超级块,这时候需要创建一个最初的文件系统err =ubifs_read_superblock(c);

  init_constants_sb:初始化ubifs中的一些数据;

  @cbuf: commit buffer

  如果挂载的时候不是以read_only的形式挂载的 就申请write_buf; alloc_wbufs(c);

  如果mst_node为脏,就表示需要进行日志恢复。

  初始化lpt

  回放日志

  主要是对于journal,lpt,orphan的初始化,后面会进行一一的解释。

你可能感兴趣的:(文件系统)