NAME
vn_lock
,
vn_unlock
, vn_islocked
— serialize access to a
vnode
SYNOPSIS
#include
<sys/vnode.h>
int
vn_lock
(struct
vnode *vp, int
flags);
void
vn_unlock
(struct
vnode *vp);
int
vn_islocked
(struct
vnode *vp);
DESCRIPTION
These calls are used to serialize access to the filesystem, 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_RETRY
Automatically retry on timeout LK_FAILRECLAIM
Fail if the vnode is being reclaimed
The
vn_lock
()
function will require either LK_EXCLUSIVE
or
LK_SHARED
to be
or'ed with the
request flags described above in order to specify the type of lock to be
used.
The
vn_unlock
()
function uses LK_RELEASE
internally to release a
previously held lock.
Please note all these functions rely on lockmgr(9) to perform their operations.
RETURN VALUES
The vn_lock
() function returns zero on
success and non-zero on failure.
The vn_islocked
() function has identical
return values as
lockstatus(9).
SEE ALSO
AUTHORS
This man page was written by Doug Rabson.