![fsfreeze 会刷新 FS 缓存吗?](https://linux22.com/image/636410/fsfreeze%20%E4%BC%9A%E5%88%B7%E6%96%B0%20FS%20%E7%BC%93%E5%AD%98%E5%90%97%EF%BC%9F.png)
如果我在已挂载的文件系统上运行 fsfreeze,则在文件系统解冻之前,将无法对该文件系统执行新的“写入”操作,并且“正在进行的”写入应该“完成”。
现在,在开始阻止新写入之后、完成正在进行的写入之后以及返回之前,fsfreeze 是否也会刷新 FS 缓存?您能给我指出任何权威来源吗?
我花了很多时间阅读文档,但找不到任何地方明确提到这一点。我找到的最接近的说明是“在磁盘上创建一个稳定的映像”——这是否意味着它会刷新 FS 缓存?
谢谢。
答案1
fsfreeze
使用FIFREEZE ioctl。以下是内核函数调用链:
- ioctl_fsfreeze()
- 冻结超级()
- sync_filesystem()
从 sync_filesystem() 函数上方的注释中可以看到:“[写入]并等待与此超级块[文件系统]相关的所有脏数据。文件系统数据以及底层块[将被写入]。”