Provided by: freebsd-manpages_12.2-2_all bug

NAME

       VOP_FDATASYNC, VOP_FSYNC — flush file system buffers for a file

SYNOPSIS

       #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);

DESCRIPTION

       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:

       vp       The vnode of the file.

       waitfor  Whether the function should wait for I/O to complete.  Possible values are:

                MNT_WAIT    Synchronously wait for I/O to complete.

                MNT_NOWAIT  Start all I/O, but do not wait for it.

                MNT_LAZY    Push data not written by file system syncer.

       td       The calling thread.

       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).

LOCKS

       The vnode should be exclusively locked on entry, and stays locked on return.

RETURN VALUES

       Zero is returned if the call is successful, otherwise an appropriate error code is returned.

ERRORS

       [ENOSPC]           The file system is full.

       [EDQUOT]           Quota exceeded.

SEE ALSO

       vnode(9)

AUTHORS

       This manual page was written by Doug Rabson.

Debian                                           March 22, 2019                                     VOP_FSYNC(9)