2015-08-31 18 views

Antwort

5

Wenn Sie syncfs (2) syscall aufrufen, ruft der Kernel sync_filesystem() auf dem Superblock des Dateisystems auf, zu dem der fd gehört. Wenn das betreffende Dateisystem die Superblock-Operation .sync_fs implementiert, wird es aufgerufen. FUSE nicht und daher sync_filesystem() für FUSE ruft nur __sync_blockdev() auf/dev/fuse auf, was alle schmutzigen Seiten (und somit alle nicht synchronisierten Dateien) für diese Sicherung mounten würde.

+0

Vielen Dank. Könntest du ein bisschen mehr zu meiner Frage klären: Kennt ein FUSE-Client irgendwie, wenn sync (2) oder syncfs (2) aufgerufen wird? –

+0

Entschuldigung für die Verspätung. Von dem, was ich verstehe, wenn einer der obigen 2 syscalls von der Anwendung aufgerufen wird, wird die fuse_flush() im Kernel aufgerufen, die an Ihren FUSE-Client übergeben wird. – itisravi