FreeBSD/sys/fs/unionfs/union_vnops.c
/*
 * The state of an acquired lock is adjusted similarly to
 * the time of error generating. 
 * flags: LK_RELEASE or LK_UPGRADE
 */
The state of an acquired lock is adjusted similarly to
the time of error generating.
The state of an acquired lock is adjusted similarly to the time of error generating .
static void
unionfs_revlock(struct vnode *vp, int flags)
{
	if (flags & LK_RELEASE)
		VOP_UNLOCK(vp, flags);
	else {
		if (vn_lock(vp, flags) != 0)
			vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
	}
}
static void unionfs_revlock ( struct vnode * vp , int flags ) { if ( flags & LK_RELEASE ) VOP_UNLOCK ( vp , flags ) ; else { if ( vn_lock ( vp , flags ) != 0 ) vn_lock ( vp , LK_EXCLUSIVE | LK_RETRY ) ; } }
The state of an acquired lock is adjusted similarly to
 the time of error generating.
The state of an acquired lock is adjusted similarly to the time of error generating .
/* UPGRADE */