table of contents
VOP_LOCK(9) | Kernel Developer's Manual | VOP_LOCK(9) |
NAME¶
VOP_LOCK, VOP_UNLOCK, VOP_ISLOCKED, vn_lock — serialize access to a vnodeSYNOPSIS¶
#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.
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.
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.
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.February 25, 2008 | Debian |