fsfreeze 会刷新 FS 缓存吗?

fsfreeze 会刷新 FS 缓存吗?

如果我在已挂载的文件系统上运行 fsfreeze,则在文件系统解冻之前,将无法对该文件系统执行新的“写入”操作,并且“正在进行的”写入应该“完成”。

现在,在开始阻止新写入之后、完成正在进行的写入之后以及返回之前,fsfreeze 是否也会刷新 FS 缓存?您能给我指出任何权威来源吗?

我花了很多时间阅读文档,但找不到任何地方明确提到这一点。我找到的最接近的说明是“在磁盘上创建一个稳定的映像”——这是否意味着它会刷新 FS 缓存?

谢谢。

答案1

fsfreeze使用FIFREEZE ioctl。以下是内核函数调用链:

  1. ioctl_fsfreeze()
  2. 冻结超级()
  3. sync_filesystem()

从 sync_filesystem() 函数上方的注释中可以看到:“[写入]并等待与此超级块[文件系统]相关的所有脏数据。文件系统数据以及底层块[将被写入]。”

相关内容