Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/unionfs/union_vnops.c
Show First 20 Lines • Show All 1,862 Lines • ▼ Show 20 Lines | unionfs_lock(struct vop_lock1_args *ap) | ||||
if (ump == NULL || unp == NULL) | if (ump == NULL || unp == NULL) | ||||
goto unionfs_lock_null_vnode; | goto unionfs_lock_null_vnode; | ||||
lvp = unp->un_lowervp; | lvp = unp->un_lowervp; | ||||
uvp = unp->un_uppervp; | uvp = unp->un_uppervp; | ||||
if ((revlock = unionfs_get_llt_revlock(vp, flags)) == 0) | if ((revlock = unionfs_get_llt_revlock(vp, flags)) == 0) | ||||
panic("unknown lock type: 0x%x", flags & LK_TYPE_MASK); | panic("unknown lock type: 0x%x", flags & LK_TYPE_MASK); | ||||
if ((vp->v_iflag & VI_OWEINACT) != 0) | if ((vp->v_irflag & VIRF_OWEINACT) != 0) | ||||
flags |= LK_NOWAIT; | flags |= LK_NOWAIT; | ||||
/* | /* | ||||
* Sometimes, lower or upper is already exclusive locked. | * Sometimes, lower or upper is already exclusive locked. | ||||
* (ex. vfs_domount: mounted vnode is already locked.) | * (ex. vfs_domount: mounted vnode is already locked.) | ||||
*/ | */ | ||||
if ((flags & LK_TYPE_MASK) == LK_EXCLUSIVE && | if ((flags & LK_TYPE_MASK) == LK_EXCLUSIVE && | ||||
vp == ump->um_rootvp) | vp == ump->um_rootvp) | ||||
▲ Show 20 Lines • Show All 678 Lines • Show Last 20 Lines |