routine file_sync (
file: file_t;
RPT
wait: int;
omit_metadata: int);
Sync the individual file. If omit_metadata
is set, then it is only necessary
for the server to updated the actual contents of the file, not any associated
metadata.
Implementation Examples
Servers that either don't keep any unsynchronized state (or don't have a
backing store at all) can simply return 0
. Examples: nfs.
libtrivfs
Pass the call through to the underlying node.
?storeio / ?streamio
Instead of to the underlying node, pass the call through to the backend (device).
libnetfs
Invoke netfs_attempt_sync
.
libdiskfs
Invoke diskfs_file_update
.
Usage Examples
glibc
fdatasync
file_syncfs (FD, true, true)
-- invoke it on the passed file descriptor, do wait for completion, do allow omitting to update the associated metadata.fsync
file_syncfs (FD, true, false)
-- invoke it on the passed file descriptor, do wait for completion, don't allow omitting to update the associated metadata.