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_RETRYAutomatically retry on timeout LK_FAILRECLAIMFail 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.