Date: Fri, 8 Sep 1995 17:50:04 -0700 From: Julian Elischer <julian> To: davidg, hackers Subject: bug in 4.4lite (fixed in lite2) Message-ID: <199509090050.RAA19932@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
while we are updating.. here's one to not miss: in ufs/ufs/ufs_vnops.c: if (fvp == tvp) { if (fvp->v_type == VDIR) { error = EINVAL; goto abortit; } VOP_ABORTOP(fdvp, fcnp); vrele(fdvp); vrele(fvp); vput(tdvp); vput(tvp); tcnp->cn_flags &= ~MODMASK; tcnp->cn_flags |= LOCKPARENT | LOCKLEAF; if ((tcnp->cn_flags & SAVESTART) == 0) panic("ufs_rename: lost from startdir"); tcnp->cn_nameiop = DELETE; (void) relookup(tdvp, &tvp, tcnp); return (VOP_REMOVE(tdvp, tvp, tcnp)); } is back to front.. all the t (to) variables should be f (from) and visa versa. touch a ln a b mv a b results in a remaining and b being deleted in lite2 if (fvp == tvp) { if (fvp->v_type == VDIR) { error = EINVAL; goto abortit; } /* Release destination completely. */ VOP_ABORTOP(tdvp, tcnp); vput(tdvp); vput(tvp); /* Delete source. */ vrele(fdvp); vrele(fvp); fcnp->cn_flags &= ~MODMASK; fcnp->cn_flags |= LOCKPARENT | LOCKLEAF; if ((fcnp->cn_flags & SAVESTART) == 0) panic("ufs_rename: lost from startdir"); fcnp->cn_nameiop = DELETE; (void) relookup(fdvp, &fvp, fcnp); return (VOP_REMOVE(fdvp, fvp, fcnp)); } get's it right.. I just noticed this when adding rename to devfs.. but 4.4l2 noticed before me :)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199509090050.RAA19932>