FreeBSD Manual Pages
VOP_FSYNC(9) FreeBSD Kernel Developer's Manual VOP_FSYNC(9) 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 re- coverable 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 im- plement fdatasync(2). LOCKS The vnode should be exclusively locked on entry, and stays locked on re- turn. RETURN VALUES Zero is returned if the call is successful, otherwise an appropriate er- ror 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. FreeBSD 13.0 March 22, 2019 FreeBSD 13.0
NAME | SYNOPSIS | DESCRIPTION | LOCKS | RETURN VALUES | ERRORS | SEE ALSO | AUTHORS
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=VOP_FSYNC&sektion=9&manpath=FreeBSD+12.1-RELEASE+and+Ports>