VOP_ISLOCKED9freebsd
Serialize access to a vnode
Usage
int
int
int
int
Overview
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 callingVOP_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.
History
- Debian 13 (Trixie) to Debian 11 (Bullseye): the text shown here
- Debian 10 (Buster)
- Debian 9 (Stretch)
- Debian 8 (Jessie)
- Debian 7 (Wheezy)
- Debian 6.0 (Squeeze)
- Debian 5.0 (Lenny)