VOP_FSYNC(9) | Kernel Developer's Manual | VOP_FSYNC(9) |
VOP_FDATASYNC
,
VOP_FSYNC
— flush file
system buffers for a file
#include
<sys/param.h>
#include <sys/vnode.h>
int
VOP_FDATASYNC
(struct
vnode *vp, struct thread
*td);
int
VOP_FSYNC
(struct
vnode *vp, int
waitfor, struct thread
*td);
VOP_FSYNC
()
ensures that a file can be recovered to its current state following a crash.
That typically requires flushing the file's dirty buffers, its inode, and
possibly other filesystem metadata to persistent media.
VOP_FSYNC
() is used to implement the
sync(2) and fsync(2) system calls.
Its arguments are:
MNT_WAIT
MNT_NOWAIT
MNT_LAZY
VOP_FDATASYNC
()
is similar, but it does not require that all of the file's metadata be
flushed. It only requires that the file's data be recoverable after a crash.
That implies that the data itself must be flushed to disk, as well as some
metadata such as the file's size but not necessarily its attributes.
VOP_FDATASYNC
() should always wait for I/O to
complete, as if called with MNT_WAIT
.
VOP_FDATASYNC
() is used to implement
fdatasync(2).
The vnode should be exclusively locked on entry, and stays locked on return.
Zero is returned if the call is successful, otherwise an appropriate error code is returned.
This manual page was written by Doug Rabson.
March 22, 2019 | Debian |