“三= 1”在Linux源代码中(2014)

2021-03-11 00:30:07

*这可能是一个模块,因为它不经常使用。

*设置块和inode位图,以及新组的inode表。

*这并不是需要成为主要交易的一部分,因为我们只是

*在此步骤中,我们只设置Blocks Bitmaps的位,用于块

*第一次打电话。在稀疏文件系统中它将是

* 3,5和7:1,3,5,7,9,25,27,49,81,...的权力序列

*对于非稀疏文件系统,它将是每组:1,2,3,4,...

*检查所有备份GDT块是否在主GDT块中保持。 *假设它们以组顺序存储。 返回的数量 *使用调整大小inode。 目前新GDT块的主要副本 *新的备份GDT块将在此间接中存储为叶块 *块,按组订单。 即使我们知道我们需要的所有块数, * Don' t需要更新块位图,因为块仍在使用中。 *我们将所有错误案例置于路上,以便我们肯定不是

*一旦我们开始修改磁盘上的数据,就会失败,因为JBD没有回滚。

*当我们添加具有每个备份副本的新组时调用

*我们需要将这些保留的备份GDT块添加到调整大小inode,因此

*所以我们提前知道他们的块数是什么。我们只得到了

*更新ext4元数据的备份副本。这些唐' t需要成为一部分

*由于某种原因,我们需要从备份超级块运行E2FSCK。这

*重要部分是新块和inode计数在备份中

/ *超出期刊空间,可以' t得到更多 - 中止 - 如此悲伤* /

*鸡肉,只是将旗帜放在希望它写的

/ *将Flex组添加到FS。确保我们处理所有可能的错误条件

*如果我们在GDT块边界,我们需要获得保留的GDT块。

/ *我们将块添加到位图并设置组需要init位* /

* point仅用于将当前文件系统扩展到最后结束