diff options
author | eivind <eivind@FreeBSD.org> | 1999-11-13 20:58:17 +0000 |
---|---|---|
committer | eivind <eivind@FreeBSD.org> | 1999-11-13 20:58:17 +0000 |
commit | 4ce73d70968875fa0c07f07e90a2bdcb84726bd6 (patch) | |
tree | 1a5eba3223a453fbc8060d31521181433ce7f3f3 /sys/fs | |
parent | 91b25fa7a9d94c9097d6ebf1d8ec6b1a332f8e04 (diff) | |
download | FreeBSD-src-4ce73d70968875fa0c07f07e90a2bdcb84726bd6.zip FreeBSD-src-4ce73d70968875fa0c07f07e90a2bdcb84726bd6.tar.gz |
Remove WILLRELE from VOP_SYMLINK
Note: Previous commit to these files (except coda_vnops and devfs_vnops)
that claimed to remove WILLRELE from VOP_RENAME actually removed it from
VOP_MKNOD.
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/coda/coda_vnops.c | 10 | ||||
-rw-r--r-- | sys/fs/unionfs/union_vnops.c | 7 |
2 files changed, 5 insertions, 12 deletions
diff --git a/sys/fs/coda/coda_vnops.c b/sys/fs/coda/coda_vnops.c index 6614b4b..5f86c09 100644 --- a/sys/fs/coda/coda_vnops.c +++ b/sys/fs/coda/coda_vnops.c @@ -1578,6 +1578,7 @@ coda_symlink(v) char *path = ap->a_target; struct ucred *cred = cnp->cn_cred; struct proc *p = cnp->cn_proc; + struct vnode **vpp = ap->a_vpp; /* locals */ int error; /* @@ -1590,7 +1591,6 @@ coda_symlink(v) int len = cnp->cn_namelen; int plen = strlen(path); - /* XXX What about the vpp argument? Do we need it? */ /* * Here's the strategy for the moment: perform the symlink, then * do a lookup to grab the resulting vnode. I know this requires @@ -1625,12 +1625,8 @@ coda_symlink(v) /* Invalidate the parent's attr cache, the modification time has changed */ tdcp->c_flags &= ~C_VATTR; - /* - * Free the name buffer - */ - if ((cnp->cn_flags & SAVESTART) == 0) { - zfree(namei_zone, cnp->cn_pnbuf); - } + if (error == 0) + error = VOP_LOOKUP(tdvp, vpp, cnp); exit: CODADEBUG(CODA_SYMLINK, myprintf(("in symlink result %d\n",error)); ) diff --git a/sys/fs/unionfs/union_vnops.c b/sys/fs/unionfs/union_vnops.c index a7af32b..7f9d8ee 100644 --- a/sys/fs/unionfs/union_vnops.c +++ b/sys/fs/unionfs/union_vnops.c @@ -1622,11 +1622,8 @@ union_symlink(ap) int error = EROFS; if ((dvp = union_lock_upper(dun, p)) != NULLVP) { - struct vnode *vp; - - error = VOP_SYMLINK(dvp, &vp, cnp, ap->a_vap, ap->a_target); - /* vp is garbage whether an error occurs or not */ - *ap->a_vpp = NULLVP; + error = VOP_SYMLINK(dvp, ap->a_vpp, cnp, ap->a_vap, + ap->a_target); union_unlock_upper(dvp, p); } return (error); |