将磁盘上的inode读入内存中

One*_*One 8 linux filesystems inode vfs

我相信有两种类型的inode - 磁盘上和内核中的inode(fs.h中的'struct inode').磁盘上的inode基于文件系统实现.我想了解潜在的概念并提出一些问题 -

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

谢谢!

Ash*_*osh 2

在使用 iget 算法为新分配的磁盘 inode 分配空闲 inode 后,核心 inode 会在算法 ialloc 中从磁盘 inode 进行复制。

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