- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
FUSE API不公开文件系统级别的 sync
调用,只是 fsync
和 fsyncdir
。这是否意味着当 sync
被调用时(或 FUSE 挂载点内的 syncfs
),内核对所有 FUSE 挂载的所有打开文件调用 fsync
文件系统?还是有不同的语义?
最佳答案
查看内核源代码,似乎在 sync
和 syncfs
上执行了任何挂起的写回,但未调用 fsync
(不是AFAICS 无论如何),所以实际上没有任何方法可以知道调用了 sync
或 syncfs
。
相关代码在https://github.com/torvalds/linux/blob/v4.16/fs/sync.c ,例如https://github.com/torvalds/linux/blob/v4.16/fs/sync.c#L31-L41
如图所示,这会在文件系统 super block 上调用fsync_fs
操作,但 fuse 没有定义任何内容:
https://github.com/torvalds/linux/blob/v4.16/fs/fuse/inode.c#L803-L814
我还记得读过一个关于这个的邮件列表线程,它表明在 fuse 中实现 sync_fs
是非常重要的,因为它会允许一个 fuse 文件系统(它可能作为非特权用户运行) 无限期地阻止任何全局 sync
系统调用,造成安全 (DoS) 问题。不过,我再也找不到那个线程了。
关于linux - 'sync' 和 'syncfs' 系统调用是否映射到 FUSE 的 'fsync' 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32312208/
新的 syncfs 系统调用是否在返回之前等待光盘写入完成,就像 fsync 的情况一样?此外,如果在修改文件后,是否为此文件描述符调用 syncfs 也会更新包含的目录条目? 最佳答案 syncfs
在我的嵌入式系统上,我想确保在关闭文件时数据已安全写入 - 如果系统报告数据已保存,用户应该能够立即切断电源。 我知道执行此操作的正确方法是在目录 (参见 this blog entry )。但是,在
fsync 和 syncfs 有什么区别? int syncfs(int fd); int fsync(int fd); fync 的联机帮助页说明如下: fsync() transfers ("fl
是否有导出 syncfs 的包在 Go 中运行?我想同步特定的文件系统。 我找到了 syscall包,但它仅导出 FSync、Fdatasync 和 Sync。 最佳答案 syncfs只是一个系统调用
根据 sync 手册页,不能保证调用 sync 后光盘会刷新其缓存:“根据标准规范(例如 POSIX.1-2001),sync() 会安排写入,但可能会在实际写入完成之前返回。但是,由于版本 1.3.
FUSE API不公开文件系统级别的 sync 调用,只是 fsync和 fsyncdir。这是否意味着当 sync 被调用时(或 FUSE 挂载点内的 syncfs),内核对所有 FUSE 挂载的所
我是一名优秀的程序员,十分优秀!