使用 dm-crypt 在映射的加密设备上同步?

fsync on mapped crypted device with dm-crypt?

我有一个关于 dm-crypt 的问题。

这是我的情况。我使用 Linux 中的 cryptsetup 命令映射了一个加密分区(在虚拟设备中加密)。我正在使用 open() 函数在 C 程序中打开映射的虚拟设备。

我可以确定当我使用 fsync() 函数时所有信息都将写入加密分区或者 dm-crypt 驱动程序中是否有一些缓冲区?

我找不到太多这方面的参考资料。也许有人可以对此有更多的了解,因为我还没有 grokked the source,但似乎 sync 写入磁盘。

有一点是问题 trim-with-lvm-and-dm-crypt,其中 sync 可靠地更改 磁盘内容,但缓存内容仅在 [=12] 之后更新=].

另一种是the issuesync挂在挂起的设备上,表示同步直接到设备。

第三个是 Gentoo discussion,其中 luksClosesync 之后可靠地成为可能。

第四个是this UL answer,表示

the rest of the stuff [dm-crypt] is in kernel and pretty heavily used, so it's probably fine

可能还是这些都错了,也有可能sync没有直接写入加密盘,不过好像不太可能。