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

FreeBSD Manual Pages

  
 
  

home | help
VOP_LOCK(9)		   Kernel Developer's Manual		   VOP_LOCK(9)

NAME
       VOP_LOCK,  VOP_UNLOCK,  VOP_ISLOCKED,  vn_lock -- serialize access to a
       vnode

SYNOPSIS
       #include	<sys/param.h>
       #include	<sys/lock.h>
       #include	<sys/vnode.h>

       int
       VOP_LOCK(struct vnode *vp, int flags);

       int
       VOP_UNLOCK(struct vnode *vp);

       int
       VOP_ISLOCKED(struct vnode *vp);

       int
       vn_lock(struct vnode *vp, int flags);

DESCRIPTION
       These calls are used to serialize access	to the file system, such as to
       prevent two writes to the same file from	happening at the same time.

       The arguments are:

       vp     The vnode	being locked or	unlocked.

       flags  One of the lock request types:

		    LK_SHARED	   Shared lock.
		    LK_EXCLUSIVE   Exclusive lock.
		    LK_UPGRADE	   Shared-to-exclusive upgrade.
		    LK_DOWNGRADE   Exclusive-to-shared downgrade.
		    LK_RELEASE	   Release any type of lock.
		    LK_DRAIN	   Wait	for all	lock activity to end.

	      The lock type may	be or'ed with these lock flags:

		    LK_NOWAIT	   Do not sleep	to wait	for lock.
		    LK_SLEEPFAIL   Sleep, then return failure.
		    LK_CANRECURSE  Allow recursive exclusive lock.
		    LK_NOWITNESS   Instruct  witness(4)	 to  ignore  this  in-
				   stance.

	      The lock type may	be or'ed with these control flags:

		    LK_INTERLOCK   Specify  when the caller already has	a sim-
				   ple lock (VOP_LOCK()	will unlock the	simple
				   lock	after getting the lock).
		    LK_RETRY	   Retry until locked.

	      Kernel code should use vn_lock() to lock	a  vnode  rather  than
	      calling  VOP_LOCK()  directly.   vn_lock()  also does not	want a
	      thread specified as argument but	it  assumes  curthread	to  be
	      used.

RETURN VALUES
       Zero is returned	on success, otherwise an error is returned.

SEE ALSO
       vnode(9)

AUTHORS
       This manual page	was written by Doug Rabson.

FreeBSD	14.3			August 23, 2022			   VOP_LOCK(9)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=VOP_UNLOCK&sektion=9&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help