Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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>

home | help