“同步”和“同步”系统调用是否映射到FUSE的“fsync”调用?

FUSE API不公开文件系统sync调用,只是fsyncfsyncdir 。 这是否意味着在调用sync (或FUSE挂载点内的syncfs )时,内核会在所有FUSE挂载的文件系统上的所有打开的文件上调用fsync ? 还是有不同的语义?

当调用syncfs(2)系统调用时,内核调用fd所属文件系统的超级块上的sync_filesystem()。 如果所讨论的文件系统实现.sync_fs超级块操作,则会被调用。 FUSE不会,因此FUSE的sync_filesystem()只会调用/ dev / fuse上的__sync_blockdev(),它将同步所有保险丝装载的脏页(因此也包括所有未更新的文件)。