VOP_LOCK
, VOP_UNLOCK
,
VOP_ISLOCKED
, vn_lock
—
serialize access to a vnode
#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);
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:
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.
Zero is returned on success, otherwise an error is returned.
This manual page was written by Doug Rabson.