2011-02-11 94 views
8

我认为有inode-in-disk和in-core inode(fs.h中的'struct inode')两种类型。磁盘inode基于文件系统实现。我想了解的基本概念,并有几个问题 -将磁盘inode读到内存中

  • 有人点我的代码(或通过所需的步骤)在磁盘上的inode读取/复制到内核inode ?即,当创建in-core inode时,它必须来自磁盘inode。那么,这是如何发生的?
  • 为什么in-core inode不存储指向磁盘inode的指针?
  • 如果对in-core inode进行了修改,那么它如何传播到磁盘inode?任何指向代码或代码流的指针都会有所帮助。

谢谢!

回答

2

在使用算法iget为新分配的磁盘inode分配一个空闲inode后,核心inode将从算法ialloc中的磁盘inode复制而来。

内核设置标志,用于指示磁盘inode和内核拷贝之间的差异。当内核需要记录对文件或inode的更改时,它会在检查这些内核后将inode的内核拷贝写入磁盘标志。