Changeset View
Changeset View
Standalone View
Standalone View
sys/ufs/ffs/ffs_vnops.c
Show First 20 Lines • Show All 415 Lines • ▼ Show 20 Lines | #ifndef NO_FFS_SNAPSHOT | ||||
switch (ap->a_flags & LK_TYPE_MASK) { | switch (ap->a_flags & LK_TYPE_MASK) { | ||||
case LK_SHARED: | case LK_SHARED: | ||||
case LK_UPGRADE: | case LK_UPGRADE: | ||||
case LK_EXCLUSIVE: | case LK_EXCLUSIVE: | ||||
vp = ap->a_vp; | vp = ap->a_vp; | ||||
flags = ap->a_flags; | flags = ap->a_flags; | ||||
for (;;) { | for (;;) { | ||||
#ifdef DEBUG_VFS_LOCKS | |||||
KASSERT(vp->v_holdcnt != 0, | |||||
("ffs_lock %p: zero hold count", vp)); | |||||
#endif | |||||
lkp = vp->v_vnlock; | lkp = vp->v_vnlock; | ||||
result = _lockmgr_args(lkp, flags, VI_MTX(vp), | result = _lockmgr_args(lkp, flags, VI_MTX(vp), | ||||
LK_WMESG_DEFAULT, LK_PRIO_DEFAULT, LK_TIMO_DEFAULT, | LK_WMESG_DEFAULT, LK_PRIO_DEFAULT, LK_TIMO_DEFAULT, | ||||
ap->a_file, ap->a_line); | ap->a_file, ap->a_line); | ||||
if (lkp == vp->v_vnlock || result != 0) | if (lkp == vp->v_vnlock || result != 0) | ||||
break; | break; | ||||
/* | /* | ||||
* Apparent success, except that the vnode | * Apparent success, except that the vnode | ||||
▲ Show 20 Lines • Show All 1,332 Lines • Show Last 20 Lines |