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:
The lock type may be or'ed with these lock flags:
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 control 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.
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.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 |