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