Ответ 1
Глядя на исходный код ядра, кажется, что на sync
и syncfs
любые ожидающие обратные записи, но fsync
не вызывается (в любом случае, не AFAICS), поэтому на самом деле нет никакого способа узнать, что syncfs
sync
или syncfs
.
Соответствующий код находится в https://github.com/torvalds/linux/blob/v4.16/fs/sync.c, например, https://github.com/torvalds/linux/blob/v4.16/fs/sync..С# L31-L41
Как показано, это вызывает операцию fsync_fs
над суперблоком файловой системы, но fuse не определяет ничего:
https://github.com/torvalds/linux/blob/v4.16/fs/fuse/inode.c#L803-L814
Я также помню, чтение списка рассылки нить об этом, который предположил, что внедрение sync_fs
в взрывателя нетривиально, так как это позволило бы запал файловой системы (который может работать как непривилегированный пользователь), чтобы блокировать любые глобальные sync
системных вызовов на неопределенный срок, создает проблему безопасности (DoS). Я не могу найти эту нить больше, хотя.