Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/ext2fs/ext2_vnops.c
Show First 20 Lines • Show All 913 Lines • ▼ Show 20 Lines | if (doingdirectory && newparent) { | ||||
if (error) /* write access check above */ | if (error) /* write access check above */ | ||||
goto bad; | goto bad; | ||||
if (xp != NULL) | if (xp != NULL) | ||||
vput(tvp); | vput(tvp); | ||||
error = ext2_checkpath(ip, dp, tcnp->cn_cred); | error = ext2_checkpath(ip, dp, tcnp->cn_cred); | ||||
if (error) | if (error) | ||||
goto out; | goto out; | ||||
VREF(tdvp); | VREF(tdvp); | ||||
error = relookup(tdvp, &tvp, tcnp); | error = vfs_relookup(tdvp, &tvp, tcnp); | ||||
if (error) | if (error) | ||||
goto out; | goto out; | ||||
vrele(tdvp); | vrele(tdvp); | ||||
dp = VTOI(tdvp); | dp = VTOI(tdvp); | ||||
xp = NULL; | xp = NULL; | ||||
if (tvp) | if (tvp) | ||||
xp = VTOI(tvp); | xp = VTOI(tvp); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 109 Lines • ▼ Show 20 Lines | abortit: | ||||
} | } | ||||
/* | /* | ||||
* 3) Unlink the source. | * 3) Unlink the source. | ||||
*/ | */ | ||||
fcnp->cn_flags &= ~MODMASK; | fcnp->cn_flags &= ~MODMASK; | ||||
fcnp->cn_flags |= LOCKPARENT | LOCKLEAF; | fcnp->cn_flags |= LOCKPARENT | LOCKLEAF; | ||||
VREF(fdvp); | VREF(fdvp); | ||||
error = relookup(fdvp, &fvp, fcnp); | error = vfs_relookup(fdvp, &fvp, fcnp); | ||||
if (error == 0) | if (error == 0) | ||||
vrele(fdvp); | vrele(fdvp); | ||||
if (fvp != NULL) { | if (fvp != NULL) { | ||||
xp = VTOI(fvp); | xp = VTOI(fvp); | ||||
dp = VTOI(fdvp); | dp = VTOI(fdvp); | ||||
} else { | } else { | ||||
/* | /* | ||||
* From name has disappeared. IN_RENAME is not sufficient | * From name has disappeared. IN_RENAME is not sufficient | ||||
▲ Show 20 Lines • Show All 1,294 Lines • Show Last 20 Lines |