Changeset View
Changeset View
Standalone View
Standalone View
head/sys/ufs/ufs/ufs_lookup.c
Show First 20 Lines • Show All 739 Lines • ▼ Show 20 Lines | if (ltype != VOP_ISLOCKED(vdp)) { | ||||
if (VN_IS_DOOMED(vdp)) { | if (VN_IS_DOOMED(vdp)) { | ||||
vrele(vdp); | vrele(vdp); | ||||
return (ENOENT); | return (ENOENT); | ||||
} | } | ||||
} | } | ||||
*vpp = vdp; | *vpp = vdp; | ||||
} else { | } else { | ||||
error = VFS_VGET(pdp->v_mount, ino, cnp->cn_lkflags, &tdp); | error = VFS_VGET(pdp->v_mount, ino, cnp->cn_lkflags, &tdp); | ||||
if (error == 0 && VTOI(tdp)->i_mode == 0) { | |||||
vgone(tdp); | |||||
vput(tdp); | |||||
error = ENOENT; | |||||
} | |||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
*vpp = tdp; | *vpp = tdp; | ||||
} | } | ||||
/* | /* | ||||
* Insert name into cache if appropriate. | * Insert name into cache if appropriate. | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 870 Lines • Show Last 20 Lines |