logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

VOP_FDATASYNC, VOP_FSYNC — flush file system buffers for a file

Authors

       This manual page was written by Doug Rabson.

Debian                                           March 22, 2019                                     VOP_FSYNC(9)

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

Errors

       [ENOSPC]           The file system is full.

       [EDQUOT]           Quota exceeded.

Locks

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

Name

       VOP_FDATASYNC, VOP_FSYNC — flush file system buffers for a file

Return Values

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

See Also

vnode(9)

Synopsis

#include<sys/param.h>#include<sys/vnode.h>intVOP_FDATASYNC(structvnode*vp, structthread*td);

       intVOP_FSYNC(structvnode*vp, intwaitfor, structthread*td);

See Also