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

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
VOP_LOCK(9)            FreeBSD 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 flags);

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

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

                  LK_INTERLOCK       Specify when the caller already has a
                                     simple 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 11.0-PRERELEASE        February 25, 2008       FreeBSD 11.0-PRERELEASE

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | AUTHORS

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

home | help