routine fsys_syncfs (
fsys: fsys_t;
RPT
wait: int;
do_children: int);
Synchronize the entire filesystem.
This function has a companion in file syncfs
, which is
invoked on an arbitrary node instead of the server's control port. Both of
them are usually implemented in equivalent ways.
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: ?symlink,
nfs.
libtrivfs
Invoke file sync
on the underlying node. Rationale: the
underlying node represents this filesystem's backend, and once this node is
synchronized, the whole libtrivfs-based filesystem is to be considered
synchronized.
?storeio / ?streamio
Instead of to the underlying node, pass the call through to the backend (device).
libnetfs
Invoke netfs_attempt_syncfs
.
libdiskfs
Invoke fsys syncfs
on all active children, and invoke
diskfs_sync_everything
and diskfs_set_hypermetadata
.
Usage Examples
libdiskfs
In the implementations of both file syncfs
and
fsys syncfs
, fsys syncfs
is invoked on all
active children.